Android 向碎片列表添加标题
我正在将标题添加到我的ListFragment,但标题没有出现。我尝试了加载项onCreate和onStart,但我已经设置了适配器。我在这里找到了这个,但它是无效的Android 向碎片列表添加标题,android,header,android-listfragment,Android,Header,Android Listfragment,我正在将标题添加到我的ListFragment,但标题没有出现。我尝试了加载项onCreate和onStart,但我已经设置了适配器。我在这里找到了这个,但它是无效的 @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View v = getAc
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View v = getActivity().getLayoutInflater().inflate(R.layout.header,
null);
container.addView(v,0);
rla = new RowListAdapter(getActivity().getLayoutInflater(),
R.layout.itemlayout, rl);
setListAdapter(rla);
return super.onCreateView(inflater, container, savedInstanceState);
}
@Override
public void onStart() {
super.onStart();
getListView().setBackgroundResource(R.color.tostadoclaro);
getListView()
.setDivider(getResources().getDrawable(R.drawable.divider));
getListView().setDividerHeight(4);
}
解决方案
@Override
public void onActivityCreated(Bundle savedInstanceState) {
View v = getActivity().getLayoutInflater().inflate(R.layout.header,
null);
this.getListView().addHeaderView(v);
rla = new RowListAdapter(getActivity().getLayoutInflater(),
R.layout.itemlayout, rl);
setListAdapter(rla);
super.onActivityCreated(savedInstanceState);
}
public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState){// Empty. Use original.}
不要将视图添加到容器中。使用addHeaderView(v)。完整代码(改编自):
@覆盖
已创建视图上的公共void(视图,捆绑保存状态){
super.onViewCreated(视图,savedInstanceState);
TextView tv=新的TextView(getActivity());
tv.setText(“你好”);
getListView().addHeaderView(电视);
setListAdapter(新的ArrayAdapter(getActivity(),android.R.layout.simple\u list\u item\u 1,
新字符串[]{“Hello world”});
}
@凌驾
公共无效onDestroyView(){
setListAdapter(空);
super.onDestroyView();
}
另请参见:我明白了!!!我尝试了tieh addHeaderView(v),但在onCreateView中无效。我这样做:@Override public void onActivityCreated(Bundle savedInstanceState){View v=getActivity().getLayoutInflater().inflate(R.layout.header,null);this.getListView().addHeaderView(v);rla=new RowListAdapter(getActivity().getLayoutInflater(),R.layout.itemloayout,rl);setListAdapter(rla);super.onActivityCreated(savedInstanceState);}很高兴听到这个消息!我可能也应该提到这个
@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
TextView tv = new TextView(getActivity());
tv.setText("Hello");
getListView().addHeaderView(tv);
setListAdapter(new ArrayAdapter<String>(getActivity(), android.R.layout.simple_list_item_1,
new String[] { "Hello world" }));
}
@Override
public void onDestroyView() {
setListAdapter(null);
super.onDestroyView();
}