2012-03-29 13 views
18

Sto cercando di impostare textize e textcolor dal pagertitlestrip e non riesco a trovare un modo per farlo.Come posso impostare TextColor, TextSize di PagerTitleStrip dal codice?

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

EDIT

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> 

Peccato che non ho trovato un modo per farlo da AttributeSet, ottenere un'eccezione Risorsa NotFound o InvalidResource.

+0

Vuoi impostare solo gli attributi per il testo nel 'PagerTitleStrip'? – Luksprog

risposta

2

Look in 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 (Contesto contesto, AttributeSet attrs) { \t super (context, attrs); \t (...) } 'Qualche esempio per creare ** AttributeSet ** per PagerTitleStrip ?? –

+0

puoi crearlo solo da xml, guarda in http://developer.android.com/reference/android/util/AttributeSet.html e http://stackoverflow.com/questions/5316686/what-is-attributeset-and-how-can-i-use-it anche utile http://grepcode.com/file/repository.grepcode. com/java/ext/com.google.android/android/4.0.3_r1/android/util/AttributeSet.java # AttributeSet –

+0

Ho scritto questo: 'XmlPullParser parser = getResources(). getXml (R.xml.mypagertitlestripattributes); AttributeSet attributes = Xml.asAttributeSet (parser); pagerTitleStrip = new PagerTitleStrip (this, attributes); pagerTitleStrip = (PagerTitleStrip) findViewById (R.id.myStrip), 'e' XML \t @ nullo nome \t # FFFF0000 \t 30SP ' ma nulla cambia nessun crash nessuna eccezione –

9

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

Imposta il valore del colore utilizzato come colore di base per tutti i titoli delle pagine visualizzate:

void setTextColor(int color) 

Impostare la dimensione del testo di default ad un data unità e valore:

void setTextSize(int unit, float size) 

sembra un gioco da ragazzi.

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

Grazie! Può essere fatto anche da XML? – Sheharyar

26

textSize non è disponibile direttamente come proprietà XML di view.PagerTitleStrip.

Tuttavia sono riuscito a configurarlo indirettamente tramite l'attributo stile come segue:

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

Poi ho definito la textSize in styles.xml come segue:

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

Questo ha funzionato per me

+1

answer eccellente! – Bernardo

+0

Questo è il modo migliore! – User3

+1

@ Андрей - Funziona. E richiede il "Controllo corretto" come risposta corretta. Ringrazia tutti. – statosdotcom

3

Mi sono imbattuto in questa domanda molto tardi, ma a partire da ora, textSize sebbene non sia nell'opzione di previsione, funziona.

<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

textize, colore del testo non applicato alla scheda. Il mio codice è la seguente:

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

Problemi correlati