这是我非常简单的问题:
当我尝试在onTabSelected()中修改布局的高度时,我得到一个NullPointerException。
以下是代码:
import...
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
...
tab1.setTabListener(new MyTabListener(fragmentTabCustom));
actionBar.addTab(tab1);
}
...
public void changeFragmentTabCustom() {
runOnUiThread(new Runnable() {
@Override
public void run() {
layout1 = (LinearLayout) findViewById(R.id.layoutdefault);
layout1.getLayoutParams().height = 0; // the exception appends on this line
layout1.setLayoutParams(layout1.getLayoutParams());
}
}
}
...
}
public class MyTabListener implements ActionBar.TabListener {
...
@Override
public void onTabSelected(Tab tab, FragmentTransaction ft) {
mainActivity.changeFragmentTabCustom();
...
}
}
有什么问题?
答案 0 :(得分:0)
这是因为您的视图布局参数由父级(Viewgroup)设置。
等到视图附加到窗口(添加onlayout侦听器)或者您可以创建新的LayoutParams,其高度为" 0"。