如何在标签栏中禁用滚动?

时间:2014-11-15 14:40:14

标签: java android eclipse tabs android-tabs

我的标签栏有问题。 我设置了带有三个标签的标签栏,每个标签都有一个图标,问题是标签栏变得可滚动,我想修复。

我尝试将其置于标签栏的样式

<style parent="@android:style/Widget.Holo.Light.ActionBar.Solid" name="ActionBar.Solid.Customactionbar">
     <item name="android:background">@color/actionbar_background</item>
     <item name="android:showDividers">none</item>
     <item name="android:gravity">center</item>
     <item name="android:scrollHorizontally">false</item>
     <item name="android:scrollbars">none</item>

    </style>


    <style parent="@android:style/Widget.Holo.Light.ActionBar.TabView" name="ActionBarTabStyle.Customactionbar">
     <item name="android:background">@color/actionbar_background</item>
     <item name="android:scrollHorizontally">false</item>
     <item name="android:scrollbars">none</item>

     </style>

并在activity_main

<TabHost
    android:id="@android:id/tabhost"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_alignParentLeft="true"
    android:layout_alignParentRight="true"
    android:layout_alignParentTop="true" 
    android:isScrollContainer="false">>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical" >

        <TabWidget
            android:id="@android:id/tabs"
            android:layout_width="match_parent"
            android:layout_height="48dp" 
            android:showDividers="none"
            android:gravity="center"
            android:isScrollContainer="false">
        </TabWidget>

但没有。

任何人都可以帮助我吗? 谢谢!

1 个答案:

答案 0 :(得分:1)

如果您使用ViewPager,则需要

<强> CustomViewPager.java

public class CustomViewPager extends ViewPager {

private boolean isPagingEnabled = true;

public CustomViewPager(Context context) {
    super(context);
}

public CustomViewPager(Context context, AttributeSet attrs) {
    super(context, attrs);
}

@Override
public boolean onTouchEvent(MotionEvent event) {
    return this.isPagingEnabled && super.onTouchEvent(event);
}

@Override
public boolean onInterceptTouchEvent(MotionEvent event) {
    return this.isPagingEnabled && super.onInterceptTouchEvent(event);
}

public void setPagingEnabled(boolean b) {
    this.isPagingEnabled = b;
}
}

替换您的ViewPager

<强>从

    <android.support.v4.view.ViewPager
        android:id="@+id/viewpager"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="bottom"
        />

   <CustomViewPager
            android:id="@+id/viewpager"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_gravity="bottom"
            />

在您的活动中:

  CustomViewPager mViewPager = (CustomViewPager) findViewById(R.id.viewpager);
  mViewPager.setPagingEnabled(false);