gpt4 book ai didi

Android Listview 不更新

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:13:01 25 4
gpt4 key购买 nike

我有一个带有自定义适配器的 ListView,显示来自数据库的信息。当我启动应用程序时,数据从数据库中读取,提供给适配器,然后附加到 ListView。 LayoutAnimationController运行在ListView上,流畅的显示内容。

    this._lvList = (ListView)_v.findViewById(R.id.lvList);
this._lvList.setAdapter(new TableAdapter(getActivity(),R.layout.tablerow,Category.getCategories()));
LayoutAnimationController lac = new LayoutAnimationController(AnimationUtils.loadAnimation(getActivity(), R.anim.slide_in_left));
lac.setDelay(0.2f);
this._lvList.setLayoutAnimation(lac);
this._lvList.startLayoutAnimation();

完全没有问题。

现在当我单击 ListView 的任何条目时,未单击的条目消失,单击的条目成为列表中的唯一条目并显示在顶部,如预期的那样。

View v;
for(int i = 0;i<_lvList.getChildCount();i++) {
v = this._lvList.getChildAt(i);
if(v!=clickedView) {
Animation animSlideOut = AnimationUtils.loadAnimation(getActivity(), i%2==0?R.anim.slide_out_left:R.anim.slide_out_right);
animSlideOut.setStartOffset(i*50);

// some more stuff

}
v.startAnimation(animSlideOut);
}

这也有效,但现在的问题是,如果我再次单击该单个列表条目,我希望列表重新填充,再次显示所有项目。

我认为我可以从一开始就使用代码(第一个 fragment ),因为它在启动应用程序时运行良好,但是......这次......它没有。没有动画发生。原因是,我的 ListView 中没有要设置动画的 View (上一步中的 View 除外)。

我没有创建新的 Tableadapter,而是尝试清除它,填充新的,称为 notifyDataSetChanged()...没用,因为

_lvList.getChildCount();

stills 返回 1 个 View ,而适配器保留所有 18 个条目。我也试过了

requestLayout();
forceLayout();
invalidate();
invalidateViews();

强制 ListView 在动画之前生成其 subview ,但它不起作用。所以 atm ListView 只是立即出现,在我调用布局动画之后的某个时候。

总结:我的 ListView 在布局动画开始之前不包含 subview ,我如何强制它生成它们?

提前致谢:)

最佳答案

嗯...你这样做了吗? (下)

在您的自定义适配器中,覆盖方法:

@Override
public View getView(int position, View convertView, ViewGroup parent){
//the position of the item, the convertView is the view layout of what that row is

}

更改 ListView 的更新方式。 Android 每隔一段时间就会调用此 getView 方法来刷新 View (您不需要手动调用它)

另外,我想你只需要打电话

listView.notifiyDataSetChanged()listView.invalidate() 在您重新填充列表后强制更新

您可以在此处阅读有关 ListView 的更多信息:

http://www.vogella.com/articles/AndroidListView/article.html

http://developer.android.com/guide/topics/ui/layout/listview.html

关于Android Listview 不更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13365296/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com