我正在尝试用视图回收重新创建ListView(和AbsListView)逻辑。
我需要这个,但我们可以说这只是为了理解安卓逻辑。
假设我的子项是相同的(相同的布局),使用固定高度RelativeLayout
在滚动期间,我正在重用ghost子视图并为当前项设置属性。
它工作正常,因为我使用View.offsetTopAndBottom()invalidate()而不是在滚动优化期间请求布局。
我的问题是更新孩子们(RelativeLayout)。
根据项目,我想隐藏或显示此项目的ImageView。为此,我只使用iconImage.setVisibility( GONE )iconImage.setVisibility( VISIBLE )
因为我阻塞了requestLayout,所以它似乎不能正常工作。
如果我使用setVisibility(),所有的树都将测量和布局本身,这不是滚动用户体验的好方法。
是否有方法只对回收子项进行请求布局?

最佳答案

您需要用视图更改通知listview,因此从uithread调用notifyDataSetChanged();,如下所示:

        final ArrayAdapter adapter = ((ArrayAdapter) getListAdapter());
    runOnUiThread(new Runnable() {
        @Override
        public void run() {
            adapter.notifyDataSetChanged();
        }
    });

08-18 14:16