【问题标题】:How to get a fragment in FragmentStateAdapter如何在 FragmentStateAdapter 中获取片段
【发布时间】:2021-07-31 02:41:02
【问题描述】:
MyFragment currentFragment = (MyFragment) getSupportFragmentManager()
                                   .findFragmentByTag("f"+pagerMainAdapter.getItemId(0));
currentFragment.testRun("Hello world");

我正在尝试从ViewPager 迁移到ViewPager2,但我不知道如何在ViewPager2 中获取片段。

【问题讨论】:

    标签: java android android-fragments android-viewpager2 fragmentstatepageradapter


    【解决方案1】:

    从 ViewPager2 获取当前片段:

    ViewPager2getCurrentItem(),它返回当前页码 所以,我们需要将每个页面片段链接到对应的页码。

    但是我们可以通过它的id(item id)得到一个ViewPager2片段,所以第一步是让页面Ids等于相应的位置,这样做覆盖ViewPager2@987654326中的getItemId @。

    @Override
    public long getItemId(int position) {
        return position;
    }
    

    然后获取当前片段:

    int pageId = viewpager.getCurrentItem();
    
    MyFragment currentFragment = (MyFragment) getSupportFragmentManager()
                                                  .findFragmentByTag("f" + pageId);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-01-12
      • 1970-01-01
      • 1970-01-01
      • 2019-08-03
      • 1970-01-01
      • 2014-12-29
      • 1970-01-01
      相关资源
      最近更新 更多