android - 使用 TabLayout 时如何禁用选择某些选项卡?

标签 android android-fragments

我使用控件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;
        }
    });
}

引用:Disable TabLayout

关于android - 使用 TabLayout 时如何禁用选择某些选项卡?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46009299/

相关文章:

android - 锁定安卓设备的 Activity

android - 想完全关闭应用程序

android - 在 fragment 中实现对话框时,必须在添加内容之前请求窗口功能

java.lang.IllegalStateException : FragmentManager is already executing transactions?

android - 如何在 Exoplayer Android 库中为 HLS 流设置 CloudFront Cookies?

java - 如何从 setOnItemSelectedListener 方法获取字符串?

android - 更改详细信息 fragment 上列表 fragment 的字体

android - 在 android 选项卡系统中刷新/重新加载/重新实例化 fragment

android - fragment 替换后调用 onSaveInstanceState

android - 不支持本地 .aar 文件