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