Android 只重新播放孩子,而不是所有的树
我正在尝试重新创建Android 只重新播放孩子,而不是所有的树,android,layout,Android,Layout,我正在尝试重新创建ListView(和AbsListView)逻辑,并使用视图循环。 我需要这个,但我们可以说这只是为了理解Android逻辑 假设我的子项相同(相同布局),使用固定高度RelativeLayout 在滚动期间,我将重用ghost children视图并为当前项设置属性。 它工作得很好,因为我使用的是View.offsetTopAndBottom()和invalidate()而不是在滚动优化期间请求布局 我的问题是更新子项(RelativeLayout) 根据项目的不同,我想在此
ListView
(和AbsListView
)逻辑,并使用视图循环。
我需要这个,但我们可以说这只是为了理解Android逻辑
假设我的子项相同(相同布局),使用固定高度RelativeLayout
在滚动期间,我将重用ghost children视图并为当前项设置属性。
它工作得很好,因为我使用的是View.offsetTopAndBottom()
和invalidate()
而不是在滚动优化期间请求布局
我的问题是更新子项(RelativeLayout
)
根据项目的不同,我想在此项目上隐藏或显示ImageView
。为此,我只使用了iconImage.setVisibility(消失)
和iconImage.setVisibility(可见)
由于我正在阻止requestLayout
,因此似乎setVisibility()
无法正常工作
如果我使用requestLayout
,所有的树都会测量和布局本身,这不是一个滚动用户体验的好方法
是否有一种方法可以仅在回收子项上进行请求布局?您需要通知listView更改了视图,因此调用
notifyDataSetChanged()代码>来自Uithread,如下所示:
final ArrayAdapter adapter = ((ArrayAdapter) getListAdapter());
runOnUiThread(new Runnable() {
@Override
public void run() {
adapter.notifyDataSetChanged();
}
});