简体   繁体   English

无法删除PagerTabStrip标签指示线 - Android

[英]Cannot remove PagerTabStrip tab indicator line - Android

I would like to remove the PagerTabStrip tab indicator, but I can't find a way. 我想删除PagerTabStrip选项卡指示器,但我找不到方法。 I was trying to set setDrawFullUnderline(false) but it is still there. 我试图设置setDrawFullUnderline(false),但它仍然存在。 If I set its color to transparent, I get a black line :-/ 如果我将其颜色设置为透明,我会得到一条黑线: - /

How could I get rid of it? 我怎么能摆脱它? Thanks! 谢谢!

PagerTabStrip pagerTabStrip = (PagerTabStrip) findViewById(R.id.pager_tab_strip); PagerTabStrip pagerTabStrip =(PagerTabStrip)findViewById(R.id.pager_tab_strip); pagerTabStrip.setDrawFullUnderline(true); pagerTabStrip.setDrawFullUnderline(真); pagerTabStrip.setTabIndicatorColor(Color.TRANSPARENT); pagerTabStrip.setTabIndicatorColor(Color.TRANSPARENT);

<android.support.v4.view.ViewPager
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/pager"
        android:layout_width="fill_parent"
        android:layout_height="390dp"
        android:layout_above="@+id/page_indicator"
        android:padding="20dp">

        <android.support.v4.view.PagerTabStrip
            android:id="@+id/pager_tab_strip"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_gravity="top"
            android:background="@android:color/transparent"
            android:textAppearance="@style/PagerTabStripText"
            android:paddingTop="5dp"
            android:paddingBottom="5dp" />

        </android.support.v4.view.ViewPager>

在此输入图像描述

    tabs = (PagerSlidingTabStrip) findViewById(R.id.tabs);
    tabs.setIndicatorHeight(0);

Set height of indicator zero. 设置指标零点的高度。 I hope it will help. 我希望它会有所帮助。

Yeah, the docs for 是的,博士的文件

setTabIndicatorColor()

say: 说:

The high byte (alpha) is ignored. 高字节(alpha)被忽略。

sets its own alpha on the tab strip depending on the position as you're sliding the page. 根据您在滑动页面时的位置,在标签条上设置自己的alpha。

So let's be evil and stomp all over that! 所以,让我们变得邪恶,并为此踩踏!

public class PagerTabStripNoInd extends PagerTabStrip {
    private static final String TAG = "PagerTabStripNoInd";
    private static final Integer ZERO = new Integer(0);
    public PagerTabStripNoInd(Context context) {
        super(context);
    }
    public PagerTabStripNoInd(Context context, AttributeSet attrs) {
        super(context, attrs);
    }
    @Override
    protected void onDraw(Canvas canvas) {
        try {
            Field tabAlphaField = PagerTabStrip.class.getField("mTabAlpha");
            tabAlphaField.setAccessible(true);
            tabAlphaField.set(this, ZERO);
        } catch (NoSuchFieldException e) {
            Log.e(TAG, "onDraw", e);
        } catch (IllegalAccessException e) {
            Log.e(TAG, "onDraw", e);
        }
        super.onDraw(canvas);
    }
}

Since the position-dependent alpha is calculated in a different method, if we set it to zero just before we draw, the tab color ends up really being transparent. 由于依赖于位置的alpha是以不同的方法计算的,如果我们在绘制之前将其设置为零,则选项卡颜色最终会变为透明。

Use it like this: 像这样使用它:

<android.support.v4.view.ViewPager
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/pager"
    android:layout_width="fill_parent"
    android:layout_height="390dp"
    android:layout_above="@+id/page_indicator"
    android:padding="20dp">

    <!-- use your fully qualified class name here, for example -->
    <com.example.PagerTabStripNoInd
        android:id="@+id/pager_tab_strip"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="top"
        android:background="@android:color/transparent"
        android:textAppearance="@style/PagerTabStripText"
        android:paddingTop="5dp"
        android:paddingBottom="5dp" />

</android.support.v4.view.ViewPager>

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM