使用列表视图的页脚时遇到问题。事实上,我给xml充气,然后将它发送到footerView。当我的活动出现时,我的列表视图正在显示,并且在我的页脚显示两三秒钟(有时更多)之后。为什么这么久?
以下是我的代码的一部分:
private View footerView;
@Override
protected void onCreate(Bundle savedInstanceState) {
footerView = ((LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE)).inflate(R.layout.order_footer_item, null);
super.onCreate(savedInstanceState);
}
// This is Android annotation
@AfterViews
protected void setAfterViews() {
Adapter adapter = new Adapter();
list.setAdapter(adapter);
list.setOnItemClickListener(adapter);
TextView text = (TextView) footerView.findViewById(R.id.text);
text.setText("Test");
list.addFooterView(footerView);
}
除了减速,我没有问题。为什么?我该如何改进?
提前谢谢
答案 0 :(得分:2)
在设置适配器之前添加它。
list.addFooterView(footerView);
然后
list.setAdapter(adapter);
答案 1 :(得分:1)
这对我来说是一个棘手的问题。花了一段时间研究它后,我意识到我给.inflate(view,parent,boolean)
方法提供了一个父参数,而不是将其保留为 null ,因为我使用getListView().addFooterView()
方法处理它
错误:
TextView footerView = (TextView) ((LayoutInflater) this.getSystemService(LAYOUT_INFLATER_SERVICE)).inflate(R.layout.footer_view, this.getListView(), true);
this.getListView().addFooterView(footerView);
修正:
TextView footerView = (TextView) ((LayoutInflater) this.getSystemService(LAYOUT_INFLATER_SERVICE)).inflate(R.layout.footer_view, null, false);
this.getListView().addFooterView(footerView);
答案 2 :(得分:0)
首先,您应该在onCreateView
中创建页脚视图,在其中获得LayoutInflater inflate
和ViewGroup container
。
然后,你打电话
inflater.inflate(R.layout.footer_view, container, false);
其余按照vipul mittal解决方案。