2015-08-08 64 views
2

在我的操作欄中,我想要最小化所選標籤下劃線的高度。我試圖將tab_selected.9.png,tab_selected_focused.9.png和tab_selected_pressed.9.png的高度最小化爲drawable。但沒有什麼影響,我認爲我是在走錯方向。而對於操作欄和選項卡,我使用android.support.v7.app.ActionBar和android.support.v7.app.ActionBar.Tab。任何建議不勝感激。如何更改標籤指示器在操作欄中的下劃線高度

感謝

enter image description here

theme.xml

<?xml version="1.0" encoding="utf-8"?> 
<resources> 
<!-- the theme applied to the application or activity --> 
<style name="CustomActionBarTheme" 
     parent="@style/Theme.AppCompat.Light.DarkActionBar"> 

    <!-- Support library compatibility --> 
    <item name="actionBarTabStyle">@style/MyActionBarTabs</item> 

</style> 

<!-- ActionBar tabs styles --> 
<style name="MyActionBarTabs" 
     parent="@style/Widget.AppCompat.ActionBar.TabView"> 
    <!-- tab indicator --> 
    <item name="android:background">@drawable/actionbar_tab_indicator</item> 

    <!-- Support library compatibility --> 
    <item name="background">@drawable/actionbar_tab_indicator</item> 
</style> 
</resources> 

actionbar_tab_indicator.xml

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 

<!-- STATES WHEN BUTTON IS NOT PRESSED --> 

<!-- Non focused states --> 
<!-- <item android:state_focused="false" android:state_selected="false" 
     android:state_pressed="false" 
     android:drawable="@drawable/tab_unselected" /> --> 
<item android:state_focused="false" android:state_selected="true" 
     android:state_pressed="false" 
     android:drawable="@drawable/tab_selected" 
     /> 

<!-- Focused states (such as when focused with a d-pad or mouse hover) --> 
<item android:state_focused="true" android:state_selected="false" 
     android:state_pressed="false" 
     android:drawable="@drawable/tab_unselected_focused" 
     /> 
<item android:state_focused="true" android:state_selected="true" 
     android:state_pressed="false" 
     android:drawable="@drawable/tab_selected_focused" /> 


<!-- STATES WHEN BUTTON IS PRESSED --> 

<!-- Non focused states --> 
<item android:state_focused="false" android:state_selected="false" 
     android:state_pressed="true" 
     android:drawable="@drawable/tab_unselected_pressed" /> 
<item android:state_focused="false" android:state_selected="true" 
    android:state_pressed="true" 
    android:drawable="@drawable/tab_selected_pressed" /> 

<!-- Focused states (such as when focused with a d-pad or mouse hover) --> 
<item android:state_focused="true" android:state_selected="false" 
     android:state_pressed="true" 
     android:drawable="@drawable/tab_unselected_pressed" /> 
<item android:state_focused="true" android:state_selected="true" 
     android:state_pressed="true" 
     android:drawable="@drawable/tab_selected_pressed" /> 
</selector> 
+0

您使用的是棄用導航模式。檢查設計支持庫中的TabLayout。 –

回答

1

我發現在這個環節了答案 - Is it possible to change actionbar tab indicator programmatically

使用9選項卡圖像作爲選項卡指示器的實例,我在tab_selected.xml,tab_selected_focused.xml,tab_selected_pressed.xml,tab_unselected.xml,tab_unselected_focused.xml和tab_unselected_pressed.xml中使用了佈局列表。

tab_selected.xml

<?xml version="1.0" encoding="utf-8"?> 
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" > 

<item> 
    <shape android:shape="rectangle" > 
    <solid android:color="#ffffff" /> 

    <padding android:bottom="2dp" /> 
    </shape> 
</item> 
<item> 
    <shape android:shape="rectangle" > 
     <solid android:color="@color/actionbar_color" /> 
    </shape> 
</item> 

tab_selected_pressed.xml

<?xml version="1.0" encoding="utf-8"?> 
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" > 
    <item> 
     <shape android:shape="rectangle" > 
      <solid android:color="@color/actionbar_color" /> 
     </shape> 
    </item> 
</layer-list> 

tab_selected_focused.xml

<?xml version="1.0" encoding="utf-8"?> 
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" > 
    <item> 
     <shape android:shape="rectangle" > 
      <solid android:color="@color/actionbar_color" /> 
     </shape> 
    </item> 
</layer-list> 

tab_unselected.xml

<?xml version="1.0" encoding="utf-8"?> 
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" > 


    <item> 
     <shape android:shape="rectangle" > 
      <solid android:color="@color/actionbar_color" /> 
     </shape> 
    </item> 

</layer-list> 

tab_selected_unfocused.xml

<?xml version="1.0" encoding="utf-8"?> 
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" > 
    <item> 
     <shape android:shape="rectangle" > 
      <solid android:color="@color/actionbar_color" /> 
     </shape> 
    </item> 
</layer-list> 

tab_selected_unselected.xml

<?xml version="1.0" encoding="utf-8"?> 
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" > 
    <item> 
     <shape android:shape="rectangle" > 
      <solid android:color="@color/actionbar_color" /> 
     </shape> 
    </item> 
</layer-list> 

感謝