2

Я видел много сообщений и ответов, но все еще не ясно мне, что делать, если у меня есть изменить индикатор Tab цвет без использования Android Asset StudioActionBar AppCompat изменение индикатора Tab цвет

public class MainActivity extends ActionBarActivity implements   android.support.v7.app.ActionBar.TabListener{ 

private ViewPager tabsviewPager; 
private TabsAdapter mTabsAdapter; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    tabsviewPager = (ViewPager) findViewById(R.id.tabspager); 

    mTabsAdapter = new TabsAdapter(getSupportFragmentManager()); 

    tabsviewPager.setAdapter(mTabsAdapter); 

    getSupportActionBar().setBackgroundDrawable(new ColorDrawable(Color.parseColor("#0000ff"))); 
    getSupportActionBar().setIcon(
       new ColorDrawable(getResources().getColor(android.R.color.transparent)));   
    //getSupportActionBar().setBackgroundDrawable(getResources().getDrawable(R.drawable.bg)); 
    getSupportActionBar().setStackedBackgroundDrawable(new ColorDrawable(Color.parseColor("#3b5998"))); 


    getSupportActionBar().setNavigationMode(ActionBar.NAVIGATION_MODE_TABS); 

    Tab friendstab = getSupportActionBar().newTab().setIcon(R.drawable.ic_action_action_account_child).setTabListener(this); 
    Tab publicprofiletab = getSupportActionBar().newTab().setIcon(R.drawable.ic_action_action_account_box).setTabListener(this); 
    Tab communitytab = getSupportActionBar().newTab().setIcon(R.drawable.ic_action_action_account_circle).setTabListener(this); 

    getSupportActionBar().addTab(friendstab); 
    getSupportActionBar().addTab(publicprofiletab); 
    getSupportActionBar().addTab(communitytab); 

Я прилагаю существующий приложение скриншот, как в настоящее время ищет мое действие бар, смотрите ниже:

enter image description here

как вы можете видеть, я использую #0000ff для действий бара background, и такой же цвет я хочу использовать для Tab Indicator атрибута

ответ

1

actionBarTabStyle должны быть с темой базового приложения/активности, а не под ActionBar стилем

см создать новый стиль для вашего приложения и применить к узлу в файле манифеста ,

<style name="AppTheme" parent="Theme.Base.AppCompat"> 
<item name="android:actionBarStyle">@style/MyCustomActionBar</item> 
<item name="android:actionBarTabStyle">@style/MyActionBarTabViewStyle</item> 
<item name="actionBarTabStyle">@style/MyActionBarTabView</item> 

пользовательских ActionBarTab тема как этот

<style name="MyActionBarTabViewStyle" parent="Widget.AppCompat.Base.ActionBar.TabView"> 
<item name="android:background">@drawable/action_bar_stacked_background</item> 

и @ стиль/MyActionBarTabView это проще один андроид стиль.

также относится Styling ActionBar

+0

Это изменяет фон всей вкладки. Как изменить цвет индикатора? –

0

Используйте селектор для вкладок и добавить прессы состояния с как вводимым коэффициентом:

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

Для подробных ответа и авторских ссылок увидеть эту question and answer.

Смежные вопросы