2012-03-29 94 views
18

我想从pagertitlestrip中设置文本大小和文本颜色,并且找不到办法做到这一点。如何从代码中设置TextColor,PagerTitleStrip的TextSize?

<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> 

编辑

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> 

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> 

可惜的是我没有找到一种方法,从AttributeSet中做到最好的,获取Resource NotFound或InvalidResource Exception。

+0

你想在'PagerTitleStrip'只设置文本的属性? – Luksprog 2012-06-22 14:38:30

回答

2

查找范围this

final TypedArray a = context.obtainStyledAttributes(attrs, ATTRS); 
final int textColor = a.getColor(1, 0); 
final int textSize = a.getDimensionPixelSize(2, 0); 
+1

'public PagerTitleStrip(Context context,AttributeSet attrs){ \t super(context,attrs); \t(...) }任何为PagerTitleStrip创建** AttributeSet **的示例? – 2012-03-29 15:38:18

+0

你只能从xml创建它,请看 http://developer.android.com/reference/android/util/AttributeSet。html 和 http://stackoverflow.com/questions/5316686/what-is-attributeset-and-how-can-i-use-it 也helpfull http://grepcode.com/file/repository.grepcode。 com/java/ext/com.google.android/android/4.0.3_r1/android/util/AttributeSet.java#AttributeSet – 2012-03-29 15:44:59

+0

我写道:'XmlPullParser parser = getResources()。getXml(R.xml.mypagertitlestripattributes); AttributeSet attributes = Xml.asAttributeSet(parser); pagerTitleStrip = new PagerTitleStrip(this,attributes); pagerTitleStrip =(PagerTitleStrip)findViewById(R.id.myStrip);'和XML' \t <项目名称=“android.R .attr.textAppearance “> @空 \t <项目名称=” android.R.attr.textColor “>#FFFF0000 \t <项目名称=” 机器人:TEXTSIZE“> 30sp '但没有什么变化没有崩溃没有例外 – 2012-03-29 16:52:46

9

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

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

void setTextColor(int color) 

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

void setTextSize(int unit, float size) 

看起来很容易理解。

PagerTitleStrip titleStrip = (PagerTitleStrip) findViewById(R.id.titleStrip); 
titleStrip.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 24); 
+2

谢谢!它也可以通过XML来完成吗? – Sheharyar 2013-11-13 21:51:11

26

textSize是不能直接作为view.PagerTitleStrip XML属性。

但是我设法将其设置使用间接风格属性如下:

<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" 
    /> 

然后我定义的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> 

这为我工作。

+1

优秀的anwser! – Bernardo 2014-11-20 13:09:02

+0

这是最好的方法! – User3 2015-03-24 10:43:34

+1

@Андрей - 这是行得通的。并要求“正确检查”作为正确答案。谢谢大家。 – statosdotcom 2016-06-09 20:38:18

3

我偶然发现了这个问题,但截至目前,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" /> 
0

textsize,text color not apply to tab。我的代码如下:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:tools="http://schemas.android.com/tools" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:paddingLeft="@dimen/activity_horizontal_margin" 
android:paddingRight="@dimen/activity_horizontal_margin" 
android:paddingTop="@dimen/activity_vertical_margin" 
android:paddingBottom="@dimen/activity_vertical_margin" 
android:id="@+id/relativeLayout"> 

<android.support.v4.view.ViewPager xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/pager" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 

    <android.support.v4.view.PagerTabStrip 
     android:id="@+id/pager_title_strip" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_gravity="top" 
     android:background="#33b5e5" 
     android:textColor="#fff" 
     android:paddingTop="5dp"`enter code here` 
     android:paddingBottom="5dp" /> 

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

相关问题