0

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

我实际上试图将标题添加到列表活动中。为此,我的代码是:

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

4

3 回答 3

1

您正在夸大您的视图,但没有在任何地方添加它。要设置高度,视图需要在应用程序中。

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

View header = (View)findViewById(R.layout.customheader); 
header.getLayoutParams().height=55;
于 2012-05-09T13:00:11.517 回答
1

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

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

    header.setLayoutParams(params);
于 2012-05-09T13:13:24.920 回答
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); 
于 2013-10-25T07:54:52.153 回答