2014-11-03 117 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