J'utilise View-pager
pour définir l'onglet. à l'intérieur de l'onglet catégorie lorsque je clique sur une catégorie de données de chargement à partir d'Internet et je cache toutes les catégories et les données à l'intérieur recycleview
. mais maintenant, quand je clique sur l'onglet catégorie que je veux voir avant la vue. note s'il vous plaît: Je veux cliquer sur le même onglet et chaque fois qu'il doit rafraîchir. s'il vous plaît vérifier l'image pour mieux comprendre. S'il vous plaît vérifier ma classe d'adoption.Je souhaite rafraîchir mon fragment d'onglet à chaque fois que mon onglet est déjà sélectionné
viewPager = (CustomViewPager) findViewById(R.id.tabs_viewpager);
// viewPager.setPagingEnabled(false);
tabLayout = (TabLayout) findViewById(R.id.tabs);
tabLayout.setupWithViewPager(viewPager);
tabFragmentPagerAdapter = new TabFragmentPagerAdapter(getSupportFragmentManager(), MainActivity.this, viewPager);
tabFragmentPagerAdapter.addFrag(new FeatureFragment(), "Feature");
tabFragmentPagerAdapter.addFrag(new DiscoverFragment(), "Discover");
tabFragmentPagerAdapter.addFrag(new TopFragment(), "Top");
tabFragmentPagerAdapter.addFrag(new CategoryFragment(), "Category");
// setupViewPager(viewPager);
viewPager.setAdapter(tabFragmentPagerAdapter);
classe Mon adopteur
public class TabFragmentPagerAdapter extends FragmentPagerAdapter {
private final List<Fragment> mfragmentlist = new ArrayList<>();
private final List<String> mFragmentTitleList = new ArrayList<>();
FragmentManager fragmentManager;
final int[] ICONS = new int[]{
R.drawable.feature,
R.drawable.discover,
R.drawable.top,
R.drawable.category};
public Context context;
public ViewPager viewPager;
public TabFragmentPagerAdapter(FragmentManager fm, Context context, ViewPager viewPager) {
super(fm);
this.context = context;
this.viewPager = viewPager;
this.fragmentManager = fm;
}
public View getTabView(int position) {
// Given you have a custom layout in `res/layout/custom_tab.xml` with a TextView and ImageView
View v = LayoutInflater.from(context).inflate(R.layout.custom_tab, null);
final TextView tv = (TextView) v.findViewById(R.id.textViewMainTabFrag);
tv.setText(mFragmentTitleList.get(position));
ImageView img = (ImageView) v.findViewById(R.id.imgView);
img.setImageResource(ICONS[position]);
return v;
}
public void SetOnSelectView(TabLayout tabLayout, int position) {
TabLayout.Tab tab = tabLayout.getTabAt(position);
View selected = tab.getCustomView();
TextView iv_text = (TextView) selected.findViewById(R.id.textViewMainTabFrag);
iv_text.setTextColor(context.getResources().getColor(R.color.apps_color));
}
public void SetUnSelectView(TabLayout tabLayout, int position) {
TabLayout.Tab tab = tabLayout.getTabAt(position);
View selected = tab.getCustomView();
TextView iv_text = (TextView) selected.findViewById(R.id.textViewMainTabFrag);
iv_text.setTextColor(context.getResources().getColor(R.color.black));
}
public void addFrag(Fragment fragment, String title) {
mfragmentlist.add(fragment);
mFragmentTitleList.add(title);
}
/* @Override
public Fragment getItem(int position) {
return ItemFragment.newInstance();
}*/
@Override
public Fragment getItem(int position) {
return mfragmentlist.get(position);
}
@Override
public int getCount() {
return mFragmentTitleList.size();
}
@Override
public CharSequence getPageTitle(int position) {
return mFragmentTitleList.get(position);
}
}
activité principale OnTabSelectedListener
ici sera bonne option pour recharger activity
. mais comment et comment visible mon avis
@Override
public void onTabUnselected(TabLayout.Tab tab) {
int c = tab.getPosition();
tabFragmentPagerAdapter.SetUnSelectView(tabLayout, c);
}
montrer votre adaptateur. – Ankita
essayez ce https://stackoverflow.com/questions/19744261/how-to-update-refresh-fragment-in-viewpager-by-main-activity-programmatically – Ankita
S'il vous plaît vérifier mon code d'édition –