2016-10-03 46 views
0

我使用的標籤佈局在一些片段自定義視圖,我想自定義視圖中的文本顏色從標籤佈局樣式設置(如自定義視圖將在被重用不同的地方和不同的文字顏色,我想要不同的標籤佈局樣式來設置顏色)。我沒有在自定義視圖中定義任何文本顏色,但文本始終顯示爲黑色而不是白色,這是在選項卡布局樣式中設置的。安卓:設置自定義視圖的文本顏色與標籤佈局的風格

代碼:

標籤佈局樣式:

<style name="TabBar"> 
    <item name="android:background">@color/secondary_bg_color</item> 
    <item name="tabIndicatorColor">@color/tab_indicator_color</item> 
    <item name="tabIndicatorHeight">@dimen/tab_height</item> 
    <item name="tabGravity">fill</item> 
    <item name="tabTextColor">@color/white_text_color</item> 
    <item name="tabSelectedTextColor">@color/white_text_color</item> 
</style> 

自定義視圖:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:orientation="horizontal" 
    android:paddingBottom="@dimen/default_padding_bottom" 
    android:paddingTop="@dimen/default_padding_top"> 

    <TextView 
     android:id="@+id/tab_title" 
     style="@style/TabLabel" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:paddingLeft="@dimen/payment_tab_padding_left" /> 

</LinearLayout> 

TabLabel風格:

<style name="TabLabel"> 
    <item name="android:textSize">@dimen/textsize_caption</item> 
    <item name="android:textAlignment">textStart</item> 
</style> 

用法:

<android.support.design.widget.AppBarLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    android:background="@color/primary_bg_color" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:theme="@style/ThemeOverlay.AppCompat.ActionBar"> 

    <android.support.design.widget.CollapsingToolbarLayout 
     android:id="@+id/collapsing_toolbar" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     app:contentScrim="?attr/colorPrimary" 
     app:layout_scrollFlags="scroll|exitUntilCollapsed"> 

      <FrameLayout 
       android:id="@+id/bf_fragment_container" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:visibility="gone"/> 

    </android.support.design.widget.CollapsingToolbarLayout> 

    <TabLayout 
     android:id="@+id/outgoing_tab" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     style="@style/TabBar" 
     app:tabMode="scrollable" 
     app:layout_behavior="@string/appbar_scrolling_view_behavior"/> 

</android.support.design.widget.AppBarLayout> 

到底哪裏出問題了?爲什麼選項卡布局的文本顏色對自定義視圖的文本顏色沒有任何影響?

回答

0

因爲tabTextColorŸtabSelectedTextColor只與選項卡的默認工作TextView的,但它不與自定義選項卡的工作。您可以在TabLayout的源實現中看到此行爲。

您需要自行處理自定義選項卡的文本顏色。