java.lang.IllegalArgumentException: не найдено представление для идентификатора 0x7f0904b3 (com.my.app:id/viewpagers) для фрагмента MyFavoriteFragment - PullRequest
0 голосов
/ 15 мая 2019

Я использую BottomNavigation с фрагментами, и в одном из моих нижних фрагментов я добавил фрагмент внутри фрагмента и использовал tablayout. Все работает нормально, но иногда происходит сбой приложения, что приводит к ошибке ..

java.lang.IllegalArgumentException: No view found for id 0x7f0904b3 (com.my.app:id/viewpagers) for fragment MyFavoriteFragment

Это моя нижняя навигация

enter image description here

Теперь в четвертом фрагменте у меня есть tablayout с viewpager, мой код может помочь мне с этим. Фрагмент родителя

public class CartAndFavouriteMainFragment extends BaseFragment {

    private ViewPager viewPager;
    private ViewPagerAdapter viewPagerAdapter;
    private TabLayout tabLayout;

    @Override
    public void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
    }

    @Override
    public int getLayoutId() {
        return R.layout.fragment_cart_fvrt;
    }

    @Override
    public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
        super.onViewCreated(view, savedInstanceState);

        view.setOnTouchListener(new View.OnTouchListener() {
            public boolean onTouch(View v, MotionEvent event) {
                return true;
            }
        });

        viewPager = (ViewPager) view.findViewById(R.id.viewpagers);
        viewPager.setOffscreenPageLimit(2);

        viewPagerAdapter = new ViewPagerAdapter(getChildFragmentManager());
        viewPager.setAdapter(viewPagerAdapter);

        tabLayout = (TabLayout) view.findViewById(R.id.tabs);
        tabLayout.setupWithViewPager(viewPager);

        setToolTitle("Cart");

        SharedPreferences prefs = getContext().getSharedPreferences("User_Details", MODE_PRIVATE);

        android.support.v7.widget.Toolbar toolbar = view.findViewById(R.id.tool_bar);

        if (prefs.getString("isReseller", "").equalsIgnoreCase("Y")) {
            toolbar.setBackgroundColor(getResources().getColor(R.color.colorAccent));
        } else {
            toolbar.setBackgroundColor(getResources().getColor(R.color.colorPrimary));
            tabLayout.setVisibility(View.GONE);
        }
    }

    public class ViewPagerAdapter extends FragmentPagerAdapter {

        public ViewPagerAdapter(FragmentManager fm) {
            super(fm);
        }

        @Override
        public Fragment getItem(int position) {

            Fragment fragment = null;

            if (position == 0) {
                fragment = new CartFragment();
            } else if (position == 1) {
                fragment = new MyFavoriteFragment();
            }

            getChildFragmentManager().executePendingTransactions();
            return fragment;
        }

        @Override
        public int getCount() {
            return 2;
        }

        @Override
        public CharSequence getPageTitle(int position) {
            String title = null;

            if (position == 0) {
                title = "My Cart";
            } else if (position == 1) {
                title = "My Favourites";
            }

            return title;
        }
    }

    @Override
    public void onResume() {
        super.onResume();
    }
}
...