相关疑难解决方法(0)

如何通过在ViewPager中用手指滑动来禁用分页,但仍然能够以编程方式滑动?

我有ViewPager,在它下面我有10个按钮.通过单击按钮,例如#4,寻呼机立即转到第4页mPager.setCurrentItem(3);.但是,我想通过水平手指滑动来禁用分页.因此,寻呼完成通过点击按钮.那么,我怎么能用手指禁用滑动?

android android-viewpager

521
推荐指数
17
解决办法
29万
查看次数

如何在Android中禁用单击TabLayout

我想TabLayout在我的应用程序中使用fragmentViewPager.
但我希望禁用点击TabLayout以在其间切换fragment,只需滑动即可切换fragmenst.
我写下面的代码,但没有工作,当点击TabLayout项目时,去那fragment!

MainActivity XML:

<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <android.support.design.widget.AppBarLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">

            <android.support.v7.widget.Toolbar
                android:id="@+id/toolbar"
                android:layout_width="match_parent"
                android:layout_height="?attr/actionBarSize"
                android:background="?attr/colorPrimary"
                app:layout_scrollFlags="scroll|enterAlways"
                app:popupTheme="@style/ThemeOverlay.AppCompat.Light">

                <TextView
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    android:gravity="center"
                    android:text="@string/app_namefull"
                    android:textSize="23sp" />

            </android.support.v7.widget.Toolbar>

            <android.support.design.widget.TabLayout
                android:id="@+id/tabs"
                android:layout_width="match_parent"
                android:layout_height="72dp"
                app:tabGravity="fill"
                app:tabIndicatorColor="@color/white"
                app:tabMode="fixed" />
        </android.support.design.widget.AppBarLayout>

        <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.CoordinatorLayout>
Run Code Online (Sandbox Code Playgroud)

MainActivity java:

public class Main_Page extends AppCompatActivity {

    private CollapsingToolbarLayout mCollapsingToolbarLayout;
    private Toolbar toolbar;
    private TabLayout tabLayout; …
Run Code Online (Sandbox Code Playgroud)

android android-fragments

17
推荐指数
5
解决办法
1万
查看次数

禁用TabLayout中的选项卡

TabLayout在我的应用程序中使用了最新的设计支持库.选项卡附加到viewpager,后者为每个选项卡加载片段.我想禁用所有选项卡,直到viewpager为用户选择的选项卡加载片段.我无法禁用tablayout或使其无法点击.我曾经使用过setEnabled(false),setClickable(false)但它没有用.我可以通过使用使其隐藏,setVisiblity(View.GONE)但我希望标签始终可见.

    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);
Run Code Online (Sandbox Code Playgroud)

XML

android.support.design.widget.TabLayout
android:id ="@ + id/tabLayout"android:layout_width ="match_parent"
android:layout_height ="0dp"
android:layout_weight ="0.15"
android:scrollbars ="horizo​​ntal"
android: splitMotionEvents ="false">

        @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); …
Run Code Online (Sandbox Code Playgroud)

tabs android android-fragments androiddesignsupport android-tablayout

7
推荐指数
1
解决办法
2万
查看次数

禁用tablayout中的一个标签?

我需要为我正在开发的应用程序选项卡.所以我最终得到了tablayout,它包含很少的标签.代码如下:


private void setupNavTab() {
    int[][] states = new int[][]{
            new int[]{android.R.attr.state_selected},
            new int[]{-android.R.attr.state_selected},
            new int[]{-android.R.attr.state_enabled}
    };

    int[] colors = new int[]{
            ContextCompat.getColor(getActivity(), R.color.cricut_selected_green),
            ContextCompat.getColor(getActivity(), R.color.nav_bar_unselected_content),
            ContextCompat.getColor(getActivity(), R.color.edit_button_text_color_inactive)
    };
    ColorStateList cslist = new ColorStateList(states, colors);

    if (tabs != null) {
        tabs.removeAllTabs();
        tabs.setTabTextColors(cslist);

        firstTab = tabs.newTab().setTag(TAB_FIRST);
        View customFirstTabView = LayoutInflater.from(getActivity()).inflate(R.layout.tab_item_layout, null, false);
        firstTabView = (TextView) customFirstTabView.findViewById(R.id.textContainer);

        firstTabView.setText(R.string.first);
        firstTabView.setTextColor(cslist);
        firstTab.setCustomView(customFirstTabView);

        secondTab = tabs.newTab().setTag(TAB_SECOND);
        View customSecondView = LayoutInflater.from(getActivity()).inflate(R.layout.tab_item_layout, null, false);
        secondTabView = (TextView) customSecondView.findViewById(R.id.textContainer);

        secondTabView.setText(R.string.second);
        secondTabView.setTextColor(cslist);
        secondTab.setCustomView(customSecondView);

        thirdTab = tabs.newTab().setTag(TAB_THIRD);
        View customThirdTabView
                = …
Run Code Online (Sandbox Code Playgroud)

android androiddesignsupport android-tablayout

5
推荐指数
2
解决办法
6758
查看次数

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

我使用控件 android.support.design.widget.TabLayout

我有 4 个选项卡 - 在每个选项卡上我显示一些 ViewPager -(使用片段来显示不同的 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");
Run Code Online (Sandbox Code Playgroud)

// 需要禁用 Fragment2 & Fragment3 & Fragment4 直到用户添加一些存在于 Fragment1 的字符串

android android-fragments

5
推荐指数
1
解决办法
8249
查看次数