私のアプリでは最新のデザインサポートライブラリのTabLayout
を使用しました。タブは、各タブのフラグメントをロードするビューページャに添付されます。私はviewpagerがユーザが選択したタブのフラグメントをロードするまで、すべてのタブを無効にしたい。私はtablayoutを無効にしたり、クリックできないようにすることはできません。 setEnabled(false)
とsetClickable(false)
を使用しましたが、動作しません。私はsetVisiblity(View.GONE)
を使用して見えなくすることができますが、タブを常に表示したいと考えています。TabLayoutのタブを無効にする
tabLayout = (TabLayout) findViewById(R.id.tabLayout);
tabLayout.setTabGravity(TabLayout.GRAVITY_FILL);
tabLayout.setTabMode(TabLayout.MODE_FIXED);
tabLayout.addTab(tabLayout.newTab().setIcon(R.drawable.near_me_hover).setTag(1));
tabLayout.addTab(tabLayout.newTab().setIcon(R.drawable.all_hostels).setTag(2));
tabLayout.addTab(tabLayout.newTab().setIcon(R.drawable.top_five).setTag(3));
tabLayout.addTab(tabLayout.newTab().setIcon(R.drawable.advanced_search).setTag(4));
tabLayout.setEnabled(false);
tabLayout.setClickable(false);
XML
android.support.design.widget.TabLayout
アンドロイド:ID = "@ + ID/tabLayout" アンドロイド:layout_width = "match_parent"
アンドロイド: layout_height = "0dp"
android:layout_weight = "0.15"
android:scrollbars = "horizontal"
アンドロイド:=「false」をsplitMotionEvents>
@Override
public void onTabSelected(TabLayout.Tab tab) {
switch (tab.getPosition()) {
case 0:
viewPager.setCurrentItem(tab.getPosition());
tab.setIcon(R.drawable.near_me_hover);
break;
case 1:
viewPager.setCurrentItem(tab.getPosition());
tab.setIcon(R.drawable.all_hostels_hover);
break;
case 2:
viewPager.setCurrentItem(tab.getPosition());
tab.setIcon(R.drawable.top_five_hover);
break;
case 3:
viewPager.setCurrentItem(tab.getPosition());
tab.setIcon(R.drawable.advanced_search_hover);
break;
}
}
@Override
public void onTabUnselected(TabLayout.Tab tab) {
switch (tab.getPosition()) {
case 0:
tab.setIcon(R.drawable.near_me);
break;
case 1:
tab.setIcon(R.drawable.all_hostels);
break;
case 2:
tab.setIcon(R.drawable.top_five);
break;
case 3:
tab.setIcon(R.drawable.advanced_search);
break;
}
}
@Override
public void onTabReselected(TabLayout.Tab tab) {
}
});
viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
}
@Override
public void onPageSelected(int position) {
tabLayout.getTabAt(position).select();
}
@Override
public void onPageScrollStateChanged(int state) {
}
});
サンプルコードを提供できますか? –
あなたがこれまでに試したことを投稿できます –
私はすでに使ったコードを投稿しました。 –