Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> Android開發 >> 中級開發 >> ActionBar使用方法 - Android活動欄(二)

ActionBar使用方法 - Android活動欄(二)

編輯:中級開發

有關Android活動欄-ActionBar的功能除了添加活動條目 Action Items和添加活動視圖 Action VIEw外今天android123和大家一起來看下支持多Fragment切換的ActionBar標簽頁和下拉導航。

  三、添加標簽 Tabs

   在ActionBar中實現標簽頁可以實現android.app.ActionBar.TabListener ,重寫onTabSelected、onTabUnselected和onTabReselected方法來關聯Fragment。代碼如下

  private class MyTabListener implements ActionBar.TabListener {
    private TabContentFragment mFragment;
 
    // Called to create an instance of the listener when adding a new tab
    public TabListener(TabContentFragment fragment) {
        mFragment = fragment;
    }
 
    @Override
    public void onTabSelected(Tab tab, FragmentTransaction ft) {
        ft.add(R.id.fragment_content, mFragment, null);
    }
 
    @Override
    public void onTabUnselected(Tab tab, FragmentTransaction ft) {
        ft.remove(mFragment);
    }
 
    @Override
    public void onTabReselected(Tab tab, FragmentTransaction ft) {
        // do nothing
    }
 
}

 接下來我們創建ActionBar在Activity中,代碼如下

  @Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentVIEw(R.layout.main); 
 
    final ActionBar actionBar = getActionBar();  //android開發網提示getActionBar方法一定在setContentVIEw後面
    actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS); 
    actionBar.setDisplayOptions(0, ActionBar.DISPLAY_SHOW_TITLE); 
 
    Fragment artistsFragment = new ArtistsFragment(); 
    actionBar.addTab(actionBar.newTab().setText(R.string.tab_artists)
            .setTabListener(new TabListener(artistsFragment)));
 
    Fragment albumsFragment = new AlbumsFragment();
    actionBar.addTab(actionBar.newTab().setText(R.string.tab_albums)
            .setTabListener(new TabListener(albumsFragment)));
}

 四、添加下拉導航 Drop-down Navigation

 創建一個SpinnerAdapter提供下拉選項,和Tab方式不同的是Drop-down只需要修改下setNavigationMode的模式,將ActionBar.NAVIGATION_MODE_TABS改為ActionBar.NAVIGATION_MODE_LIST,最終改進後的代碼為

ActionBar actionBar = getActionBar();
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_LIST);You should perform this during your activity's onCreate() method.

actionBar.setListNavigationCallbacks(mSpinnerAdapter, mNavigationCallback);

 上面我們通過setListNavigationCallbacks方法綁定一個SpinnerAdapter控件,具體的OnNavigationListener代碼示例為

  mOnNavigationListener = new OnNavigationListener() { 
 
  String[] strings = getResources().getStringArray(R.array.action_list);
 
  @Override
  public boolean onNavigationItemSelected(int position, long itemId) { 
 
    ListContentFragment newFragment = new ListContentFragment();
    FragmentTransaction ft = openFragmentTransaction(); 
  
    ft.replace(R.id.fragment_container, newFragment, strings[position]); 
 
    ft.commit();
    return true;
  }
};

而其中的ListContentFragment的代碼為

 public class ListContentFragment extends Fragment {
    private String mText;
 
    @Override
    public void onAttach(Activity activity) { 

      super.onAttach(activity);
      mText = getTag();
    }
 
    @Override
    public VIEw onCreateVIEw(LayoutInflater inflater, VIEwGroup container,
            Bundle savedInstanceState) { 

        TextView text = new TextVIEw(getActivity());
        text.setText(mText);
        return text;
    }
}

 有關Android ActionBar的四種方式我們已經大概了解,具體的示例工程代碼,明天android開發網繼續解析。

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved