在单个ViewPager窗口中隐藏/显示片段

时间:2018-01-12 19:38:32

标签: android android-fragments android-viewpager fragmentstatepageradapter

如何在ViewPager中隐藏SearchFragment并显示ChatFragment,而不显示remove()?我每次创建新实例都没有问题,但我不希望onDestroy()有位置,因为我会非常频繁地切换这两个视图。我想创建它们一次,并且能够show/hide一个用于另一个。

我的代码正在同时在fragment_search(id cointainer)中看到两个视图,然后崩溃。

我正在考虑在开始时创建两个片段,然后通过附加和分离来操作它们,但我无法理解这一点,因为ViewPager不会让它变得更容易

 public Fragment getItem(int position) {
        switch (position) {
            case 0:
                if (fragment1 == null)
                {
                    fragment1 = SearchFragment.newInstance(new SearchFragment.MyListener() {
                        @Override
                        public void onChatFound() {

                            // Dont want to remove fragment, just hide this view || fm.beginTransaction().remove(fragment1).commit();
                            Fragment chatTag = fm.findFragmentByTag("ChatTag");
                            if (chatTag == null)
                            {
                                chatFragment = ChatFragment.newInstance();
                                fm.beginTransaction().add(R.id.fragment_search, chatFragment, "ChatTag").commit();
                            }
                            fragment1 = chatTag;
                            notifyDataSetChanged();
                        }
                    });
                }

                return fragment1;

0 个答案:

没有答案