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