这让我疯了:我不能为我的生活弄清楚如何改变我的TabPageIndicator的页脚和文本颜色(来自Jake Wharton的ViewPagerIndicator)。我查看了示例ViewPagerIndicator应用程序的源代码,但我无法找到代码与“默认”和“样式”样本的不同之处。 “默认”具有默认的蓝色页脚和白色文本,而“样式”示例具有红色页脚并使用灰色字体。
我知道这是可能的,但我找不到怎么做!!非常感谢任何帮助。 :)
答案 0 :(得分:4)
是的,它与主题的Manifest定义不同:
对于默认标签:
<activity
android:name=".SampleTabsDefault"
android:label="Tabs/Default"
android:theme="@style/Theme.PageIndicatorDefaults">
并设置标签:
<activity
android:name=".SampleTabsStyled"
android:label="Tabs/Styled"
android:theme="@style/StyledIndicators">
答案 1 :(得分:3)
我认为正确的答案是将以下样式添加到style.xml文件中(这包含告诉VPI如何显示的元素)。像这样:
<style name="Widget.MyTitlepageIndicator">
<item name="footerColor">#ff99cc33</item>
<item name="footerIndicatorStyle">underline</item>
<item name="footerIndicatorHeight">3dp</item>
<item name="footerLineHeight">1.5dp</item>
<item name="footerPadding">6dp</item>
<item name="selectedColor">#ffffffff</item>
</style>
然后,在您定义VPI的layout.xml文件中,您只需告诉它您创建的样式,如下所示:
<com.viewpagerindicator.TitlePageIndicator
android:id="@+id/history_vp_ind"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
style="@style/Widget.MyTitlepageIndicator" />
答案 2 :(得分:1)
要以编程方式执行此操作,请修改TabPageIndicator并添加以下方法:
public void setTextColor(int color) {
for (int i = 0; i < mTabLayout.getChildCount(); i++) {
View child = mTabLayout.getChildAt(i);
if (child instanceof TextView)
((TextView) child).setTextColor(color);
}
}
然后只需使用该方法更改指标中视图的文本颜色。例如
setTextColor(0xFFFFFFFF)
会是白色的。
答案 3 :(得分:0)
您可以通过2种方式更改 TabPageIndicator 的默认背景
1。您可以更改XML中的背景
<com.viewpagerindicator.TabPageIndicator
android:id="@+id/container"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="#0c445c" />
2. 替换 viewpager库
中 TabPageIndicator.java 类中的构造函数public TabPageIndicator(Context context, AttributeSet attrs) {
super(context, attrs);
setHorizontalScrollBarEnabled(false);
mTabLayout = new IcsLinearLayout(context, R.attr.vpiTabPageIndicatorStyle);
mTabLayout.setBackgroundColor(Color.parseColor("#0c445c"));
addView(mTabLayout, new ViewGroup.LayoutParams(WRAP_CONTENT, MATCH_PARENT));
}
希望这个帮助