设置视图高度会抛出空指针异常

时间:2012-05-09 12:56:33

标签: android view height

您好我正在尝试设置视图高度,但它在第二行抛出空指针异常。

我实际上是在尝试为列表活动添加标题。为此我的代码是:

View header= (View)getLayoutInflater().inflate(R.layout.customheader, null);
getListView.addHeaderView(header);
header.getLayoutParams().height=(int)55; //This line is throwing a null pointer exception
setListAdapter(adapter);


@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    LayoutParams params=new LayoutParams(-1, 55);
    View header= (View)getLayoutInflater().inflate(R.layout.customheader, null);
    getListView().addHeaderView(header);
    getListView().setCacheColorHint(0);
    getListView().setBackgroundResource(R.drawable.patterns);
    setListAdapter(new Settingsadapter(this, menu));
    header.setLayoutParams(params);
}

例外: E / AndroidRuntime(504):java.lang.ClassCastException:android.view.ViewGroup $ LayoutParams

3 个答案:

答案 0 :(得分:1)

您正在夸大视图,但不会将其添加到任何位置。要设置高度,视图需要位于应用程序中。

如果您尝试检索部分现有布局,则需要执行以下操作:

View header = (View)findViewById(R.layout.customheader); 
header.getLayoutParams().height=55;

答案 1 :(得分:1)

确保在你的customheader中,高度为0或某些值不输入wrapcontent,fillparent,matchparent values ...

LayoutParams params = new LayoutParams(urWidth, 55);
    View  header= (View)getLayoutInflater().inflate(R.layout.customheader, null);

    header.setLayoutParams(params);

答案 2 :(得分:0)

如果要将其作为标题添加到listView,则需要将LayoutParams作为AbsListView.LayoutParams

AbsListView.LayoutParams params = new AbsListView.LayoutParams(urWidth, 55);
View  header= (View)getLayoutInflater().inflate(R.layout.customheader, null);
header.setLayoutParams(params);
listView.addHeader(header);