【问题标题】:Android master-detail fragment preserving detail stateAndroid主细节片段保留细节状态
【发布时间】:2013-05-12 04:21:06
【问题描述】:

我有一个主从片段布局,如下所示:

当列表视图中的数字是在详细视图更改中选择的值(即可单选按钮文本更改)。我有以下问题:当我在列表视图中单击数字 1 并在详细视图中选择选项 1,然后在列表视图中单击不同的数字时,详细视图选项已设置。如果此时我选择不同的选项并返回列表视图 1,则设置最后一个选项(即我之前的选择不是持久的)。

如何确保我对单选按钮的选择在列表视图选项中保持不变,并且之前的单选按钮选择不会影响下一个单选按钮的选择?

我目前的方法是在活动中使用静态数组来记录每个列表视图编号的选项选择。当我返回特定的列表视图编号时,我会查找从数组中选择的单选按钮并相应地设置详细视图。但是之前的单选按钮选择仍然设置在下一个单选按钮组中。

【问题讨论】:

    标签: android android-fragments master-detail


    【解决方案1】:

    如果您对列表视图中的所有项目使用相同的详细信息片段,我认为您应该在每次选择更改时将当前用户的选择保存到列表视图项目的 Tag 对象中。

    在更改之前保存它(setTag()),如果 getTag() 不为空,则加载用户对项目的选择。

    或者,您可以在 ViewPager 中使用相同(或不同)类型的不同片段,并使用 ListView 在页面之间切换。在您的情况下,这可能有点开销,但您可以免费获得状态保存、回溯等。此外,您将获得更简洁的代码。我更喜欢这个解决方案。

    【讨论】:

    • 我听从了您的建议并使用了 ViewPager。这让它变得容易多了。谢谢。
    • ViewPager 看起来最适合这种情况。感谢您的建议
    猜你喜欢
    • 1970-01-01
    • 2014-07-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-07
    • 1970-01-01
    • 2016-09-20
    相关资源
    最近更新 更多