【问题标题】:Refresh fragment in Tab layout on any button click单击任何按钮时刷新选项卡布局中的片段
【发布时间】:2019-05-07 16:16:47
【问题描述】:

在我的一个应用程序中,我使用了三个片段的选项卡布局和 viewpager。在每个片段中,我都使用 Java Rest API 从服务器获取数据。此服务器数据取决于片段按钮单击。例如。

process 片段中,当我点击 play 按钮时,该卡片视图会进入 completed 片段,但事实并非如此。当我刷新活动时,意味着活动关闭然后开始。我应该怎么做才能刷新片段?

【问题讨论】:

  • @user1517638 无效!!!

标签: android rest android-fragments android-recyclerview android-tablayout


【解决方案1】:

您可以尝试像这样刷新片段:

FragmentTransaction ft = getFragmentManager().beginTransaction();
ft.detach(YourFragment.this).attach(YourFragment.this).commit();

【讨论】:

【解决方案2】:

在你的 Fragment 类中试试这个

 @Override
 public void setUserVisibleHint(boolean isVisibleToUser) {
 super.setUserVisibleHint(isVisibleToUser);

    if (isVisibleToUser) {
    // Refresh your fragment here
    }
}

【讨论】:

  • 这是最好的方法
  • 有效,但 setUserVisibleHint 已被弃用。有没有更新的方法?
【解决方案3】:

我认为,您需要在模型更改时更新适配器,而不是整个片段。

【讨论】:

  • 是的,但是在哪里?
【解决方案4】:

无论您想为刷新片段执行什么操作,只需将其放在一个方法中,然后从片段中的onStart() 方法调用它,对我有用。

【讨论】:

    【解决方案5】:

    试试这个!将此代码粘贴到您的 Activity 中。

    viewpager.setOffscreenPageLimit(1);
    

    【讨论】:

    • 这不会重新加载片段。仅显示与当前片段相邻的页面将存储在缓存中...@Kuldeep 写了正确的答案。
    猜你喜欢
    • 1970-01-01
    • 2012-11-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-09-27
    • 1970-01-01
    相关资源
    最近更新 更多