微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

未选中选项卡中Fragment的调用方法

如何解决未选中选项卡中Fragment的调用方法

我有一个带有标签的应用程序。我使用ViewPagerTabLayout。在每个标签中,我都有一个Fragment。取消选择选项卡后,我想从该选项卡中的片段中调用方法

如果我想在选定的片段上调用方法,我会这样做:

tabLayout.addOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
            @Override
            public void onTabSelected(TabLayout.Tab tab) {
                String tag = "android:switcher:" + viewPager.getId() + ":" +  viewPager.getCurrentItem();
                Fragment f = getSupportFragmentManager().findFragmentByTag(tag);
                ((MyFragment) f).someMethod();
            }

            @Override
            public void onTabUnselected(TabLayout.Tab tab) {

            }

            @Override
            public void onTabReselected(TabLayout.Tab tab) {

            }
        });

基于How to know Fragment id for the fragment(s) provided by the tabbed activity template

但是问题是,我不知道如何在未选中的选项卡上进行操作。

您能帮我吗?

解决方法

您可以尝试使用onTabUnselected方法运行代码,但是请注意,此片段可能会在下一步中被破坏。

        @Override
        public void onTabUnselected(TabLayout.Tab tab) {
            // tag for tab position
            String tag = "android:switcher:" + viewPager.getId() + ":" +  tab.getPosition();
            Fragment f = getSupportFragmentManager().findFragmentByTag(tag);
            if(f instanceof MyFragment) {
                ((MyFragment) f).someMethodWhenUnselecting();
            }
        }

还请记住,ViewPager仅在内存中保持当前状态,而在内存的左侧Fragment保持当前状态。因此,如果您从54的位置,然后不存在3及以下的位置

pozdrowienia

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。