この問題を解決するのはかなり難しいです。TabLayout:タブをクリックしたときの字幕の表示/非表示
私のアプリには、私がTabLayoutを含むTabFragmentを持っているMainActivityがあります。 MainActivityのツールバーにサブタイトルを表示するには、ユーザーが2番目のタブをクリックしたときにのみ、それをクリックしたときに非表示にします。
私はすでにNavigationDrawerサイドで取得できました(そこからタブを選択することもできます)。 まだ、(フラグメントにある)タブにsetOnClickListenerを設定する方法を理解できませんし、2番目のタブにある場合のみ、コンテントアクティビティにサブタイトルを表示するよう依頼します。
サブタイトルの表示/非表示に使用するMainActivityの2つの方法があります。私TabFragmentの内部
// Update the petrol stations' total count.
public void updatePetrolStationsCount(Toolbar toolbar) {
PetrolLab petrolLab = PetrolLab.get(getApplicationContext());
int petrolStationsSize = petrolLab.getPetrolStations().size();
String totalCount = getResources().getQuantityString(R.plurals.total_count_format, petrolStationsSize, petrolStationsSize);
toolbar = (Toolbar) findViewById(R.id.toolbar);
toolbar.setSubtitle(totalCount);
}
// Hide the petrol stations' total count.
public void hidePetrolStationsCount(Toolbar toolbar) {
String totalCount = null;
toolbar = (Toolbar) findViewById(R.id.toolbar);
toolbar.setSubtitle(totalCount);
}
、私はTabPagerのための内部クラスを使用しています。
class TabPagerAdapter extends FragmentPagerAdapter {
public TabPagerAdapter(FragmentManager fm) {
super(fm);
}
// Return fragment with respect to position.
@Override
public Fragment getItem(int position) {
Fragment fragment;
switch (position) {
case MAP_POSITION:
fragment = MapFragment.newInstance(MAP_TYPE);
return fragment;
case PETROL_POSITION:
fragment = PetrolStationListFragment.newInstance(position);
return fragment;
case FAV_POSITION:
return new FavouritesFragment();
}
return null;
}
@Override
public int getCount() {
return intItems;
}
}
MainActivityに、ユーザーがTabFragmentの2番目のタブを選択したことを伝えるヒントはありますか?リスナーを各タブに配置するのと同じです。おかげさまで
?またはガイド?ご返信ありがとうございます。 – Davide3i
OK! tablayout.setOnTabSelectedListener();という意味です。 – Cgx
私はそれを正確に行うことができました!ありがとうございました。 – Davide3i