从new Runnable()中获取值



如何获取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;
}

如何将高度值存储在高度变量中?

这是内部类的经典情况。基本上,我们试图间接地将值存储在非最终可变高度内。因此,它无法存储变量。这就是您无法存储高度值的原因。您应该使用其他方法来设置内部类中的值。

相关内容

最新更新