Как изменить цвет вкладки "underbar" в actionbarsherlock
Хорошо, тогда я теряю больше здравого смысла. Я не могу найти/понять, как стилизовать эту чертову вещь.
Мне удалось изменить фон самой вкладки, но я не могу закрепить цвет панели под выбранной вкладкой.
Как изменить его с синего на что-то.
Мои стили .xml, к сожалению, у меня очень плохое понимание того, как это работает.
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="Theme.Styled" parent="Theme.Sherlock.Light">
<item name="actionBarTabStyle">@style/Widget.Styled.ActionBarTab</item>
<item name="android:actionBarTabStyle">@style/Widget.Styled.ActionBarTab</item>
<item name="actionBarTabBarStyle">@style/Widget.Styled.ActionBarTabBar</item>
<item name="android:actionBarTabBarStyle">@style/Widget.Styled.ActionBarTabBar</item>
<item name="actionBarTabTextStyle">@style/myText</item>
<item name="android:actionBarTabTextStyle">@style/myText</item>
</style>
<style name="Widget.Styled.ActionBarTab" parent="Widget.Sherlock.Light.ActionBar.TabView">
<!-- <item name="background">@drawable/startbcg</item>
<item name="android:background">@drawable/startbcg</item>
<item name="backgroundSplit">@drawable/bg_striped_split</item>
<item name="android:backgroundSplit">@drawable/bg_striped_split</item>
-->
</style>
<style name="Widget.Styled.ActionBarTabBar" parent="Widget.Sherlock.Light.ActionBar.TabBar">
<item name="background">@drawable/startbcg</item>
<item name="android:background">@drawable/startbcg</item>
<item name="backgroundSplit">@drawable/bg_striped_split</item>
<item name="android:backgroundSplit">@drawable/bg_striped_split</item>
</style>
<style name="myText" parent="Widget.Sherlock.Light.ActionBar.TabText">
<item name="android:textAppearance">@android:style/TextAppearance.Medium</item>
<item name="android:textColor">@android:color/primary_text_dark</item>
<item name="android:textSize">10sp</item>
</style>
<style name="myTextInv" parent="Widget.Sherlock.Light.ActionBar.TabText.Inverse">
<item name="android:textAppearance">@android:style/TextAppearance.Medium</item>
<item name="android:textColor">@android:color/primary_text_dark</item>
<item name="android:textSize">10sp</item>
</style>
</resources>
Бонусный вопрос: где я могу найти, какие свойства (например, фон) имеют определенные вещи.
Ответы
Ответ 1
Используйте ActionbarStyleGenerator, чтобы создать стиль панели действий. Это, безусловно, самый простой и интуитивно понятный способ.
Как сделать:
- Использование пользовательского интерфейса для выбора цветов для разных элементов
- После этого нажмите "ЗАГРУЗИТЬ .ZIP"
- Файл ZIP содержит файлы ресурсов, которые вы должны копировать в своем проекте res/layout и
res/drawableXXXX
Ответ 2
Я нашел, что для фона лучше скопировать drawables (9 патчей и xml), найденных в каталоге SDK Android SDK, и изменить его, чтобы иметь нужный вам цвет.
Они используют фон с нижней панелью, поэтому я не думаю, что можно изменить нижнюю панель.
Вот что я имею, работая с зеленым цветом для нижней панели:
<style name="customTabStyle" parent="Widget.Sherlock.ActionBar.TabView">
<item name="android:showDividers">none</item>
<item name="android:measureWithLargestChild">true</item>
<!-- This was a copy from the sdk drawable -->
<item name="android:background">@drawable/tab_indicator</item>
<item name="background">@drawable/tab_indicator</item>
<item name="android:gravity">center</item>
<item name="android:textStyle">normal</item>
</style>
<style name="customTabBar" parent="Widget.Sherlock.ActionBar.TabBar">
<item name="android:showDividers">middle</item>
<item name="android:divider">@drawable/tab_divider</item>
<item name="divider">@drawable/tab_divider</item>
<item name="android:dividerPadding">10dip</item>
<item name="android:background">@drawable/tab_bg</item>
</style>
Индикатор табуляции выглядит следующим образом:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<!-- 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 -->
<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" />
<!-- 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 -->
<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>
Надеюсь, это поможет!