Я получаю массив 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();
}
}
}
Любая помощь будет принята с благодарностью. Спасибо!