Androidスタジオでタブ付きビューを作成しましたが、問題が発生しました。ホームからカテゴリまたはお気に入りにスライドすると、テキストタイトルのホーム、カテゴリ、およびお気に入りの上にアイコンを配置します。このセクションにコメントすると、このセクションで問題が発生します。正常に動作しますが、このメソッドを呼び出すと、アプリを開いて別のクラスにスライドするとアイコンが1回だけ表示され、アイコンが消えます
viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
}
@Override
public void onPageSelected(int position) {
viewPager.getAdapter().notifyDataSetChanged();
}
@Override
public void onPageScrollStateChanged(int state) {
}
});
そして、これは私がアイコンを呼び出した方法です
setupTabIcons();
セクション全体をチェックして、どうすればそれができるか教えてください
viewPager = (ViewPager) findViewById(R.id.container);
setupViewPager(viewPager);
viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
}
@Override
public void onPageSelected(int position) {
viewPager.getAdapter().notifyDataSetChanged();
}
@Override
public void onPageScrollStateChanged(int state) {
}
});
tabLayout = (TabLayout) findViewById(R.id.tabs);
tabLayout.setupWithViewPager(viewPager);
tabLayout.setOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
@Override
public void onTabSelected(TabLayout.Tab tab) {
tabLayout.getSelectedTabPosition();
if (tab.getText().equals("Categories")) {
currentFragment = "Categories";
LocalBroadcastManager lbm = LocalBroadcastManager.getInstance(MainActivity.this);
Intent i = new Intent("TAG_REFRESH");
lbm.sendBroadcast(i);
} else {
currentFragment = "check_internet_connection";
}
}
@Override
public void onTabUnselected(TabLayout.Tab tab) {
}
@Override
public void onTabReselected(TabLayout.Tab tab) {
}
});
setupTabIcons();
}
private void setupTabIcons() {
tabLayout.getTabAt(0).setIcon(tabIcons[0]);
tabLayout.getTabAt(1).setIcon(tabIcons[1]);
tabLayout.getTabAt(2).setIcon(tabIcons[2]);
}
private void setupViewPager(ViewPager viewPager) {
adapter = new ViewPagerAdapter(getSupportFragmentManager());
adapter.addFragment(new HomeFragment(), "Home");
adapter.addFragment(new Category(), "Categories");
adapter.addFragment(new Favorite(), "Favorite");
viewPager.setAdapter(adapter);
}