Android 自定义寻呼机条

Android 自定义寻呼机条,android,android-viewpager,Android,Android Viewpager,android是否提供了定制标准PageTitleStrip或PageTabStrip的机会? 我想创建一些像这样的标题?我应该扩展什么观点,也许在这个领域有一些最佳实践 只需创建自己的自定义视图,通过调用ViewPager.setOnPageChangeListener将其连接到您的视图寻呼机,瞧,您有自己的页面条 您可以查看PageTitleStrip本身的源代码(Android源代码免费提供)以了解如何详细实现此功能这可能有点晚了,但我终于找到了如何自定义titlestrip的解决方案。我

android是否提供了定制标准PageTitleStrip或PageTabStrip的机会? 我想创建一些像这样的标题?我应该扩展什么观点,也许在这个领域有一些最佳实践


只需创建自己的自定义视图,通过调用ViewPager.setOnPageChangeListener将其连接到您的视图寻呼机,瞧,您有自己的页面条


您可以查看PageTitleStrip本身的源代码(Android源代码免费提供)以了解如何详细实现此功能

这可能有点晚了,但我终于找到了如何自定义titlestrip的解决方案。我意识到这不是一个非常干净的定制标题栏的方法,但我在任何地方都找不到更好的解决方案。我希望这能为你们节省一些时间

首先创建一个扩展PagerTitleStrip的新类,并使用两个参数重写构造函数:

public class MyPagerTitleStrip extends PagerTitleStrip {

    public MyPagerTitleStrip(Context context, AttributeSet attrs) {
        super(context, attrs);
        ((ViewManager) (this.getChildAt(2)).getParent()).removeView((TextView)this.getChildAt(2));
        ((ViewManager) (this.getChildAt(0)).getParent()).removeView((TextView)this.getChildAt(0));
    }

}
正如你所见,我以一种骇人的方式从标题栏中删除了两个文本视图,所以对此感到厌倦。这是两个文本视图,分别显示上一项和下一项的标题

您可能想做一些不同于我的事情,所以在更改/破解任何东西之前,请仔细查看android PagerTitleStrip类,尤其是构造函数。构造器可能是您想要添加可绘图项等的地方。 在
protected void onLayout()
方法中更改视图可能会导致视图绘制两次,这对应用程序的性能不是很好(您会在日志中看到很多警告)

在xml中,一切都是一样的:

<android.support.v4.view.ViewPager

        android:layout_height="match_parent"
        android:layout_width="match_parent"
        android:id="@+id/main_fragment_pager"
        xmlns:android="http://schemas.android.com/apk/res/android">

        <com.package.MyPagerTitleStrip
            android:id="@+id/fragment_pager_title"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_gravity="top"
            android:paddingTop="4dp"
            android:paddingBottom="4dp"
            android:background="#111111"
            style="@style/viewPagerTitleStrip">
        </com.package.MyPagerTitleStrip>

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