2012-08-14 100 views
2

我想创建操作栏中的自定义TabView的,是这样的: enter image description here自定义操作栏TabView的

我得到了这样的观点:

enter image description here

我想改变的背景的选项卡查看指标,所以背景颜色变得不可见,并且我们在选定的tabview指标下有绿线。

这里是我的代码(我用默认TabView的):

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 

     } 
    } 

} 

请,我怎么能膨胀的TabView的指标。

+0

其实我想实现的观点一样,标签视图你有,但我不能成功,你能告诉你如何实现它,或给任何代码示例?! – 2012-09-17 13:05:49

回答

4

添加这些都是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"/> 

+1

我得到htis错误:错误:检索项目的父项时出错:找不到与给定名称匹配的资源 'Widget.Sherlock.Light.ActionBar.TabBar'。 我为我的项目使用了android 3.0 – 2012-08-15 15:05:13

+0

您可能会错过Sherlock Library:http://actionbarsherlock.com/ – 2013-12-31 08:30:09