只重新安置孩子,而不是所有的树

我试图重新创buildListView (和AbsListView )的逻辑,与视图回收。 我需要这个,但我们可以说这只是为了理解Android逻辑。

假设我的子项目是相同的(相同的布局),使用固定的高度RelativeLayout

在滚动期间,我正在重复使用ghost子视图并为当前项目设置属性。 它工作正常,因为我正在使用View.offsetTopAndBottom()invalidate()而不是在滚动优化期间请求布局。

我的问题是更新孩子( RelativeLayout )。

项目取决于我想隐藏或显示ImageView上的项目。 为此,我只使用iconImage.setVisibility( GONE )iconImage.setVisibility( VISIBLE )

由于我阻止requestLayout ,它似乎是setVisibility()不能正常工作。

如果我使用requestLayout ,所有的树会测量和布局自己,这不是一个滚动用户体验的好方法。

有回收子项目的请求布局的方法吗?

  • 以编程方式更改布局高度,ClassCastException?
  • 在XML中设置Android TimePicker
  • 将单个xml布局用于具有不同数据的多个活动
  • 如何使一个线性布局填充相关布局的剩余空间?
  • 在Android上禁用自动布局更改
  • 如何设置android显示垂直方向?
  • Android Studio中的布局预览呈现问题(Android Studio 1.2)
  • 有没有一个好的工具来做Android布局devise?
  • 你需要通知你的listView改变了视图,所以调用notifyDataSetChanged(); 从Uithread像这样:

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