0

ListFragment的屏幕上有两个 s。左侧是一个文件结构 - 文件夹。在右侧有一个ListFragment,该列表的每个元素都是一段文本,顶部有一个标题。

现在,左边的文件结构是所有段落标题的有效副本,但考虑到层次结构,所以它不是平面的。

现在,当我单击左侧的文件夹时,我希望右侧的列表滚动到/显示以该文件夹名称为标题的段落。我可以尝试使用setSelection(POSITION);方法,但是我怎么才能找到该死的位置呢?左侧列表中的 POSITION 不等于右侧列表中的 POSITION。

亲爱的大家,对这个有什么想法吗?这更像是一个设计问题。

我会非常感谢任何帮助xxx

4

1 回答 1

1

Android 开发者指南指出:

所有 Fragment 到 Fragment 的通信都是通过关联的 Activity 完成的。两个 Fragment 永远不应该直接通信。

情况

FragmentA 中的 ListA 和 FragmentB 中的 ListB。单击 ListA 中的项目应将 ListB 滚动到正确的位置。

(可能的)解决方案

  • Fragment 之间的通信由 FragmentManager 完成。

  • 为您的两个列表使用 ArrayAdapter。这意味着 ArrayList 将与构造函数一起作为数据源提供。我们称它们为 ArrayListA 和 ArrayListB

  • 当您单击 ListA 中的项目时,您必须在 ArrayListB 中搜索标题并返回位置。一旦有了位置,就可以设置 ListB 的位置。

于 2012-08-17T11:44:31.387 回答