настроить вкладку панели действий

Я пытаюсь создать собственную вкладку на панели действий, что-то вроде этого: введите здесь описание изображения

Я получил это представление:

введите здесь описание изображения

я хочу изменить фон индикаторов вкладки, чтобы цвет фона стал невидимым, и у нас была зеленая линия под выбранным индикатором вкладки.

Вот мой код (я использовал вкладку по умолчанию):

public class BaseActivity extends Activity{

    ActionBar bar;

    @Override
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState); setContentView(R.layout.base_activity);

        bar = getActionBar(); 

        // Change action bar background

        BitmapDrawable background = new BitmapDrawable(BitmapFactory.decodeResource(getResources(), R.drawable.background_actionbar)); background.setTileModeX(android.graphics.Shader.TileMode.REPEAT); 

        bar.setBackgroundDrawable(background);

        bar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS); 

        ActionBar.Tab tabA = bar.newTab().setText(getResources().getString(R.string.documents)); 

        ActionBar.Tab tabB = bar.newTab().setText(getResources().getString(R.string.videos)); 

        ActionBar.Tab tabC = bar.newTab().setText(getResources().getString(R.string.menu_settings)); 

        Fragment fragmentA = new DocumentsListFragment();

        Fragment fragmentB = new VideosListFragment();

        Fragment fragmentC = new UserAccountFragment();

        tabA.setTabListener(new MyTabsListener(fragmentA)); 

        tabB.setTabListener(new MyTabsListener(fragmentB)); 

        tabC.setTabListener(new MyTabsListener(fragmentC)); 

        bar.addTab(tabA);

        bar.addTab(tabB);

        bar.addTab(tabC);
    }


    protected class MyTabsListener implements ActionBar.TabListener
    {
        private Fragment fragment;

        public MyTabsListener(Fragment fragment) {
            this.fragment = fragment; }

        @Override

        public void onTabSelected(Tab tab, FragmentTransaction ft)
        {
            ft.replace(R.id.fragment_place, fragment, null); }

        @Override

        public void onTabReselected(Tab tab, FragmentTransaction ft) {
            // TODO Auto-generated method stub

        }

        @Override

        public void onTabUnselected(Tab tab, FragmentTransaction ft) {
            // TODO Auto-generated method stub

        }
    }

}

Пожалуйста, как я могу раздуть этот индикатор вкладок.


person haythem souissi    schedule 14.08.2012    source источник
comment
На самом деле я пытаюсь реализовать представление вкладки, подобное представлению, которое вы получили, но я не могу добиться успеха, не могли бы вы рассказать, как вы его реализуете, или дать какой-либо пример кода?!   -  person omnia Mm    schedule 17.09.2012


Ответы (1)


Добавьте их в styles.xml под значениями.

 <style name="Theme.AndroidDevelopers" parent="Theme.Sherlock.Light.ForceOverflow"> 
 <item name=" android:actionBarItemBackground">@drawable/ad_selectable_background
 </item>
    <item name="android:actionBarTabStyle">@style/MyActionBarTabStyle</item>
    <item name="actionBarTabStyle">@style/MyActionBarTabStyle</item>
 </style>




<style name="MyActionBarTabStyle" parent="Widget.Sherlock.Light.ActionBar.TabBar">
    <item name="android:background">@drawable/actionbar_tab_bg</item>
   <item name="android:gravity">center</item>
   <item name="android:layout_gravity">center</item>
    <item name="android:paddingLeft">10dp</item>
    <item name="android:paddingRight">10dp</item>
</style>

Это что-то вроде селектора вкладок:

 <selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/ad_tab_selected_pressed_holo"           android:state_selected="true"/>
<item android:drawable="@android:color/transparent"/>

person Chaitu    schedule 14.08.2012
comment
я получаю ошибку htis: ошибка: ошибка при получении родителя для элемента: не найден ресурс, соответствующий данному имени «Widget.Sherlock.Light.ActionBar.TabBar». я использую Android 3.0 для своего проекта - person haythem souissi; 15.08.2012