Как установить указатель фрагментов вручную в Android Studio - PullRequest
0 голосов
/ 21 июня 2020

Я получаю массив JSON с сервера, который имеет категории и подкатегории, основные категории - это заголовок вкладки фрагмента, а подкатегории - это контент, который отображается во фрагментах основной вкладки. Здесь мне это удалось, но также я вручную создаю фрагмент вкладки под названием All , который включает все подкатегории, моя проблема здесь в том, что я должен показать эту вкладку категории All в самом начале всех вкладок, но на самом деле он идет в самом конце всех основных вкладок. Как этого добиться? Мой JSON метод получения:

 @Override
            public void onResponse(@NonNull Call<AllCatListStatus> call, @NonNull Response<AllCatListStatus> response) {
                try {
                    if (response.isSuccessful()) {
                        if (response.body() != null && response.body().getStatus().equals(true)) {
                            // Toast.makeText(CustomNavigationActivity.this, response.body().getMessage(), Toast.LENGTH_SHORT).show();
                            pd.dismiss();
                            AllCatData allCatData = response.body().getData();
                            // Log.d("Results ==>>InserVendor", new GsonBuilder().setPrettyPrinting().create().toJson(allCatData));
                            List<MainCategory> categoryList = response.body().getData().getCategories();
                            tabTitle.clear();
                            tabTitle = new ArrayList<>();
                            for (int i = 0; i < categoryList.size(); i++) {
                                categories = new Category();
                                categories.setCategoriesName(categoryList.get(i).getCategoriesName());
                                categories.setCategoriesId(categoryList.get(i).getCategoriesId());
                                tabLayout.addTab(tabLayout.newTab().setText(categoryList.get(i).getCategoriesName()));
                                tabTitle.add(categories);
                            }
                            int lastIndex = tabTitle.lastIndexOf(categoryList.size());
                            Toast.makeText(getApplicationContext(), ""+lastIndex, Toast.LENGTH_SHORT).show();
                            if (lastIndex == -1) {
                                categories = new Category();
                                categories.setCategoriesName("All");
                                tabLayout.addTab(tabLayout.newTab().setText("All"));
                                tabTitle.add(categories);
                            }
                            adapter = new Adapter
                                    (getSupportFragmentManager(), tabLayout.getTabCount(), tabTitle);
                            viewPager.setAdapter(adapter);
                            viewPager.setOffscreenPageLimit(1);
                            viewPager.addOnPageChangeListener(new TabLayout.TabLayoutOnPageChangeListener(tabLayout));
                            //-------deprecated api-------------- but still work//
                           // tabLayout.setOnTabSelectedListener(onTabSelectedListener(viewPager));
                            //----------new api for onclick to change tabs--------//
                            tabLayout.addOnTabSelectedListener(new TabLayout.ViewPagerOnTabSelectedListener(viewPager));
                            //Bonus Code : If your tab layout has more than 2 tabs then tab will scroll other wise they will take whole width of the screen
                            if (tabLayout.getTabCount() == 2) {
                                tabLayout.setTabMode(TabLayout.MODE_FIXED);
                            } else {
                                tabLayout.setTabMode(TabLayout.MODE_SCROLLABLE);
                            }

                        } else {
                            pd.setMessage("Please Wait..");
                            pd.setCancelable(false);
                            pd.show();
                            CategoryListService(Constant.AccessToken);
                            //Toast.makeText(getActivity(), response.body().getMessage() +" Fail", Toast.LENGTH_SHORT).show();
                        }
                    } else {
                        CallingToastMethod.showToast(MoreCatActivity.this);
                    }
                } catch (Exception e) {
                    try {
                        throw new IOException(e.toString());
                    } catch (IOException e1) {
                        e1.printStackTrace();
                    }
                }
            }

Любая помощь будет принята с благодарностью. Спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...