我使用控件android.support.design.widget.TabLayout
我有 4 个选项卡 - 在每个选项卡上我显示一些 ViewPager -(使用 fragment 显示不同的 viewPager)
我想禁用所有选项卡,直到用户添加第一个选项卡上存在的一些数据。
我找不到任何方法来禁用选项卡。
代码:
<android.support.design.widget.TabLayout
android:id="@+id/tabs"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="?android:attr/detailsElementBackground"
android:clickable="true"
app:tabGravity="center"
app:tabMode="scrollable"
app:tabTextAppearance="@style/MineCustomTabText" />
<android.support.v4.view.ViewPager
android:id="@+id/viewpager"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_behavior="@string/appbar_scrolling_view_behavior" />
</android.support.design.widget.AppBarLayout>
ViewPagerAdapter adapter = new ViewPagerAdapter(getSupportFragmentManager());
adapter.addFragment(new Fragment1(), "Fragment1");
adapter.addFragment(new Fragment2(), "Fragment2");
adapter.addFragment(new Fragment3(), "Fragment3");
adapter.addFragment(new Fragment4(), "Fragment4");
//需要禁用 Fragment2 & Fragment3 & Fragment4,直到用户添加一些存在于 Fragment1 上的字符串
最佳答案
试试这个:
LinearLayout tabStrip = ((LinearLayout)mTabLayout.getChildAt(0));
for(int i = 0; i < tabStrip.getChildCount(); i++) {
tabStrip.getChildAt(i).setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
return true;
}
});
}
关于android - 使用 TabLayout 时如何禁用选择某些选项卡?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46009299/