如何从代码中设置PagerTitleStrip的TextColor,TextSize?

Анд*_*рей 20 android android-viewpager

我试图从pagertitlestrip设置textsize和textcolor,但无法找到方法.

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

    <android.support.v4.view.PagerTitleStrip
        android:id="@+id/myStrip"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="top" />

</android.support.v4.view.ViewPager>
Run Code Online (Sandbox Code Playgroud)

编辑

main.xml中

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

    <android.support.v4.view.PagerTitleStrip
        style="@style/PagerTitleStrip"
        android:id="@+id/myStrip"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="top" />

</android.support.v4.view.ViewPager>
Run Code Online (Sandbox Code Playgroud)

style.xml

<style name="PagerTitleStrip">
    <item name="android:textAppearance">@style/PagerTitleStripTextAppearance</item>
</style>

<style name="PagerTitleStripTextAppearance">
    <item name="android:textColor">#FFFFFFFF</item>
    <item name="android:textSize">14sp</item>
</style>
Run Code Online (Sandbox Code Playgroud)

可惜我没有找到从AttributeSet中获取它的方法,获得Resource NotFound或InvalidResource Exception.

bha*_*arc 32

textSize不能直接作为XML属性使用view.PagerTitleStrip.

但是我设法使用style属性间接设置它,如下所示:

<android.support.v4.view.PagerTitleStrip
    android:id="@+id/pager_title_strip"
    style="@style/viewPagerTitleStrip" <-- added style attribute here
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_gravity="top"
     />
Run Code Online (Sandbox Code Playgroud)

然后我textSizestyles.xml中定义如下:

<style name="viewPagerTitleStrip">
    <item name="android:layout_width">fill_parent</item>
    <item name="android:layout_height">wrap_content</item>
    <item name="android:textColor">#FFFFFF</item>
    <item name="android:textSize">14sp</item> <-- my desired text size
</style>
Run Code Online (Sandbox Code Playgroud)

这对我有用.


Bud*_*ius 10

来自:http://developer.android.com/reference/android/support/v4/view/PagerTitleStrip.html

设置用作所有显示页面标题的基色的颜色值:

void setTextColor(int color) 
Run Code Online (Sandbox Code Playgroud)

将默认文本大小设置为给定单位和值:

void setTextSize(int unit, float size) 
Run Code Online (Sandbox Code Playgroud)

看起来很简单.

PagerTitleStrip titleStrip = (PagerTitleStrip) findViewById(R.id.titleStrip);
titleStrip.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 24);
Run Code Online (Sandbox Code Playgroud)

  • 谢谢!它也可以通过XML完成吗? (3认同)

小智 5

我很快就偶然发现了这个问题,但截至目前,textSize虽然不在预测选项中,但仍有效.

<android.support.v4.view.PagerTitleStrip
        android:id="@+id/pager_title_strip"
        android:layout_width="match_parent"
        android:layout_height="50dp"
        android:layout_gravity="top"
        android:background="@android:color/holo_blue_dark"
        android:textSize="18sp"

        android:textColor="#ffffff"
        android:paddingTop="4dp"
        android:paddingBottom="4dp" />
Run Code Online (Sandbox Code Playgroud)


Ale*_*sky 2

看看这个

final TypedArray a = context.obtainStyledAttributes(attrs, ATTRS);  
final int textColor = a.getColor(1, 0);  
final int textSize = a.getDimensionPixelSize(2, 0);
Run Code Online (Sandbox Code Playgroud)