0

我在ViewPager中使用PagerTitleStrip如何为PagerTitleStrip创建两种不同的文本颜色?

<android.support.v4.view.ViewPager 
    android:id="@id/pager" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    > 

    <android.support.v4.view.PagerTitleStrip 
     android:id="@id/pager_title_strip" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     style="@style/PagerTitleStrip" 
     /> 
</android.support.v4.view.ViewPager> 

我必须在此条上显示n个标题。

final int titles[] = {"Title1" , "Title2", "Title3", "Title4"}; 

这是在PagerTitleStrip上应用的样式。

<style name="PagerTitleStrip"> 
    <item name="android:textColor">@color/red</item> 
    <item name="android:background">@android:color/white</item> 
    <item name="android:textSize">20sp</item> 
</style> 

请注意,此ViewGroup的AttributeSet中只有一个textColor字段。

我想设置两种不同的颜色(红色和灰色),一种用于可见页面的标题(主要标题),另一种用于不可见的页面(非主要标题在边缘部分可见)。

此外,在换页过程中,条形标题应该在转换过程中改变颜色。

根据文档,setNonPrimaryAlpha(float)可以让你定义非主要标题的alpha值,而不是这个,我想要不同的文字颜色,任何人都可以帮助我吗?

+0

我不确定,但您可以尝试通过选择器设置文本颜色。你可以尝试说明哪些​​对你有用。祝你好运。 – 2014-09-26 07:14:30

+0

这根本不可能。如果你想要做这样的事情,你必须编写你自己的PagerTitleStrip实现。 – reVerse 2014-09-26 08:41:05

+0

@hbansal你有没有找到解决方案?请告诉我。 – AB1209 2015-08-06 10:46:00

回答

2

您可以通过XML做到这一点,你必须做的唯一的事情就是写你的颜色状态列表:

pager_tab_strip_text_selector.xml

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 

    <item android:color="@color/background_black_3" android:state_window_focused="false" /> 
    <item android:color="@color/highlight_gold" android:state_window_focused="true" /> 

</selector> 

把一个样式里面的颜色状态列表:

<style name="PagerTabStrip"> 
     <item name="android:textColor">@color/pager_tab_strip_text_selector</item> 
    </style> 

您必须做的唯一事情就是,不要将其设置为样式,而应将其设置为文本外观,如下所示:

<android.support.v4.view.ViewPager 
     android:id="@+id/fragment_light_viewpager" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent"> 

     <android.support.v4.view.PagerTitleStrip 
      android:id="@+id/fragment_light_pagertabstrip" 
      android:textAppearance="@style/PagerTabStrip.Light" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:background="@android:color/transparent" /> 

    </android.support.v4.view.ViewPager> 
相关问题