膨胀页脚视图很慢

时间:2014-01-16 10:27:38

标签: android listview

使用列表视图的页脚时遇到问题。事实上,我给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);
}
除了减速,我没有问题。为什么?我该如何改进?

提前谢谢

3 个答案:

答案 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 inflateViewGroup container

然后,你打电话

inflater.inflate(R.layout.footer_view, container, false);

其余按照vipul mittal解决方案。