如何获取Runnable
内部访问的值
我试图从LinearLayout
获得高度,并且我可以用Log.d()
看到它,但我无法将值存储在成员变量中。
这是我看到高度的代码:
final ScrollView scrollView = (ScrollView) findViewById(R.id.scrollView);
scrollView.post(new Runnable() {
@Override
public void run() {
setHeight(scrollView.getHeight());
Log.d("height", scrollView.getHeight());
}
});
然后我试着用一个函数来存储它,但它总是返回0
:
protected void setHeight(int value){
height = value;
}
如何将高度值存储在高度变量中?
这是内部类的经典情况。基本上,我们试图间接地将值存储在非最终可变高度内。因此,它无法存储变量。这就是您无法存储高度值的原因。您应该使用其他方法来设置内部类中的值。