2014-11-03 124 views
0

我开发了一个Android应用程序,它有4个TabHost的碎片。Android中的自定义操作栏?

我知道如何在MainActivity中自定义ActionBar

但问题是我如何根据4种不同的TabHost在不同的Fragment s中定制我的ActionBar

这里是我的tabHost码 -

public class MainActivity extends Activity { 
/** Called when the activity is first created. */ 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    ActionBar actionBar = getActionBar(); 
    actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS); 


    /** Creating ANDROID Tab */ 
    Tab tab = actionBar.newTab() 
      //.setText("Android") 

      .setTabListener(new CustomTabListener<PlayFragment01>(this, "play", 
    PlayFragment01.class)) 
      .setIcon(R.drawable.playtabhosticon); 

    actionBar.addTab(tab); 


    /** Creating APPLE Tab */ 
    Tab tab1 = actionBar.newTab() 
      //.setText("Apple") 
      .setTabListener(new CustomTabListener<VenueFragment01>(this, "venu", 
    VenueFragment01.class)) 
      .setIcon(R.drawable.venutabhosticon); 

    actionBar.addTab(tab1); 

    /** Creating APPLE Tab */ 
    Tab tab3 = actionBar.newTab() 
      //.setText("Apple") 
      .setTabListener(new CustomTabListener<SocialFragment01>(this, "social", SocialFragment01.class)) 
      .setIcon(R.drawable.socialtabhosticon); 

    actionBar.addTab(tab3); 

    /** Creating APPLE Tab */ 
    Tab tab4 = actionBar.newTab() 
      //.setText("Apple") 
      .setTabListener(new CustomTabListener<ActivityFragment01>(this, "activity",   
    ActivityFragment01.class)) 
      .setIcon(R.drawable.actionbartabhosticon); 

    actionBar.addTab(tab4); 



} 
} 

这是我的第一个片段码 -

package in.wptrafficanalyzer.actionbarnavtab; 
/** This is a listfragment class */ 
public class PlayFragment01 extends Fragment { 

/** An array of items to display in ArrayList */ 



@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)  
{ 
    /** Creating array adapter to set data in listview */ 
    View rootView = inflater.inflate(R.layout.fragment_play, container, false);   
    //new DownloadJSON().execute(); 

    ActionBar actionBar = getActivity().getActionBar(); 
    actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS); 
    getActivity().getActionBar().setBackgroundDrawable(
      new ColorDrawable(Color.parseColor("#0077d1"))); 
    ActionBar mActionBar = getActivity().getActionBar(); 
    getActivity().getActionBar().setIcon(
     new ColorDrawable(getResources().getColor(android.R.color.transparent)));  
    mActionBar.setDisplayShowHomeEnabled(true); 
    mActionBar.setDisplayShowTitleEnabled(false); 
    LayoutInflater mInflater = LayoutInflater.from(this); 
    View mCustomView = mInflater.inflate(R.layout.custom_actionbar2, null); 
    mActionBar.setCustomView(mCustomView); 
    mActionBar.setDisplayShowCustomEnabled(true); 

    return rootView; 
} 
} 
+0

你的问题不是很清楚。你想要完全定制什么? – 2014-11-03 09:24:24

+0

@RolfSmit动作栏... – madhavan 2014-11-03 09:26:06

+0

“我知道如何自定义ActionBar”.... – 2014-11-03 09:26:48

回答

0

问题你问的是不是很清楚,但你可以从片段中得到的动作条实例使用getActivity().getActionBar()

+0

谢谢!上面我也用一个例子来解释它! – madhavan 2014-11-03 09:34:28

+0

如果这个答案对你有帮助,请接受它。这将帮助具有相同问题的其他用户快速解决问题。 – 2014-11-03 09:35:55

+0

亚哈工作....让我检查谢谢! – madhavan 2014-11-03 09:37:20

0

ActionBar.setNavigationMode()TabHost现已弃用。

在API-21中引入的新ToolBar功能更强大。

不过既然你问了一个解决方案,下面是谷歌SlidingTabLayout简单: 这就好比一个PagerTabStrip,你可以轻松地定制和工作原理是巨大的。

它当然适用于ViewPagerFragments

+0

但我怎么可以在工具条添加图像,你可以给我的这一个例子! – madhavan 2014-11-03 09:53:49

+0

@madhavan往常一样,您可以自定义视图https://stackoverflow.com/questions/23472759/add-icons-to-slidingtablayout-instead-of-text – shkschneider 2014-11-03 09:57:10

0

在我看来,你应该阅读这个,以便你可以得到创建片段的基本想法。

http://developer.android.com/guide/components/fragments.html

试试这个样本code..this示例代码包含3个选项卡,第一次尝试理解这个代码,那么你可以让自己的应用程序有4个选项卡

http://www.androidhive.info/2013/10/android-tab-layout-with-swipeable-views-1/

也可以尝试修改你的问题,目前还不清楚,并且它会很好,你发布你的错误

+0

谢谢!!我已阅读完整封锁。我有一个查询如何在此文本的位置添加图像? – madhavan 2014-11-03 12:06:16

+0

是否意味着更改标题名称的标签)最高评分,游戏图像或标签内的文字图像? – user3173628 2014-11-03 12:16:52

+0

是............ – madhavan 2014-11-03 12:19:43