当前位置: 首页 > 知识库问答 >
问题:

带有动态列表视图的Android ViewPager+片段

许亦
2023-03-14

在我的应用程序中,我有标签的活动(让我们说10个标签)。每个选项卡页都包含片段ListView(此ListView中显示的数据是从我的服务器动态加载的)。我使用viewpager来显示这些页面。我不想将所有片段保存在内存中,所以我决定使用FragmentStatePagerAdapter(我的适配器类扩展了这些类)。

>

  • 假设选择了第三个选项卡。然后,当我转到第一个选项卡时,应该从头开始为该选项卡创建fragment(这很好,这就是fragmentStatePagerAdapter的工作方式),但不恢复该片段以前的状态(例如,ListView不应该滚动到上次访问该fragment时保存的位置-现在它正在滚动)。所以我的第一个问题是:我如何实现这样的行为?换句话说,我希望适配器在从头创建片段时不要恢复它的状态。

    再说一次,假设第三个标签被选中。然后,当我转到第二个选项卡时,这个选项卡的fragment应该仍然在内存中(这很好,这就是fragmentStatePagerAdapter的工作方式),但是在这种情况下,我想决定是否应该更新listview数据(取决于某些条件)。如何通知这个片段它已被选中?

  • 共有1个答案

    白昊东
    2023-03-14

    对于#1,看看这篇博客文章。他们谈到修复FragmentStatePagerAdpater,以处理索引的fragment类更改的情况,这并不是您所希望的。但是,它详细显示了如何保存/还原状态,您应该能够从那里找出如何防止它。

    对于#2,在保存ViewPager的片段中实现OnPageChangeListener。然后,当当前片段发生变化时,使用它来获取它,这样您就可以对它调用某个公共方法,告诉它进行更新。

     类似资料:
    • 我在一个片段中使用ListView,我已经按照Android的指示设置了所有必要的要求,下面是我的XML列表代码 在我的代码中 但是,我仍然得到这个错误 08-20 23:26:26.053:E/AndroidRuntime(30334):致命异常:main 08-20 23:206:26.053:E/Android Runtime“30334”:进程:com.deliveryscience.tr

    • 问题内容: 我可以做一个静态列表 但是,如何从数组中动态生成元素列表?我尝试了以下操作,但出现错误: 包含控制流语句的闭包不能与函数生成器“ ViewBuilder”一起使用 有什么解决办法吗?我要完成的工作是一个列表,其中包含不是静态输入的动态元素集。 问题答案: 看起来答案与将我的视图包装在其中有关 这样,我现在可以从服务器获取视图数据并进行组合。而且,仅在需要时才实例化它们。

    • 在ViewModel中,我维护一个字符串列表。如果将执行< code>onAddTag或< code>onRemoveTag,则将刷新可变状态。这导致了重组。 问题是,如果我使用删除一个元素(例如第三个),更新的列表会在我的“自定义可组合”(已调试)中到达,但渲染只会从列表中删除最后一项。 例: 初始列表: 1,2,3,4 - 在的文档中,有一参数,它说: key——代表项目的稳定且唯一的键的工厂

    • 所以我正在创建一个列表视图,其中每一行都有一个Imageview(用于预览图像)、一个textView和一个按钮(用于删除图像)。 问题: 单击该项目的 但有时代码工作正常,有时只是显示错误的项目编号。 更新: 我忘了补充,文本视图中显示的值是:“标志:#”其中#是该项目的当前计数号。我不能理解的总是正确的,但不是我得到的祝酒词: s 背景工作: 页面顶部有一个按钮,用户可以通过该按钮单击照片,当

    • 问题内容: 给定两个示例表: 门票表 属性表 我如何获得这样的视图: 重要的是要注意,属性表并不总是相同的。一些“票证”可能具有其他人没有的属性。 这有可能吗? 问题答案: 您可以使用PIVOT执行此操作。在执行PIVOT时,可以使用以下两种方法之一进行操作:使用“静态数据透视表”(将对行进行编码)或“动态数据透视表”将在运行时创建列列表: 静态数据透视表(请参见SQL Fiddle中的Demo)

    • 我有一个android布局,它有一个,里面有很多元素。在的底部有一个,然后由适配器填充。 我遇到的问题是,android将从中排除,因为已经具有可滚动的功能。我希望与内容一样长,并且主滚动视图是可滚动的。 我怎样才能达到这种行为呢? 下面是我的主要布局: 然后以编程方式将组件添加到具有ID:的linearlayour中。下面是加载到LinearLayout中的一个视图。就是这个给我卷轴带来麻烦的。