【Android 应用开发】 ActionBar 基础
作者 : 萬境絕塵 (octopus_truth@163.com)
轉載請注明出處 :?http://blog.csdn.net/shulianghan/article/details/39204393
示例代碼下載 :?
-- GitHub :?https://github.com/han1202012/Octopus_ActionBar.git
-- CSDN :?http://download.csdn.net/detail/han1202012/7913297
一. ActionBar 基本操作
1. ActionBar 簡介
ActionBar 位置?: 位于老版本的標題欄位置;
ActionBar 功能簡介 :?
-- 菜單顯示 : 顯示選項菜單;
-- 回退鍵 : 程序圖標可以作為回退鍵使用;
-- 交互式 : 提供交互式 View;
-- 導航 : 類似與 Tab 導航, 可以進行 Fragment 切換;
-- 下拉導航 : 在導航的基礎上 提供下拉功能;
2. 配置文件 配置 ActionBar 啟用 和 關閉
配置文件中指定 targetSdkVersion : 在創(chuàng)建應用的時候, 指定的 targetSdkVersion 大于 3.0 版本, 就會默認啟用 ActionBar, 現有手機大部分都是 4.0 以上, 就不使用 supportV4 兼容了, 直接使用高版本 sdk;
-- 創(chuàng)建工程示例 : 注意 Theme 選擇 None, 選擇其它主題會出錯;
-- 配置文件 :?
<uses-sdkandroid:minSdkVersion="15"android:targetSdkVersion="19" />
關閉 ActionBar : 在 AndroidMainifest.xml 配置文件中, 為 <application /> 節(jié)點, 配置?android:theme 屬性;
-- 默認配置 :?android:theme="@style/AppTheme" ;
<applicationandroid:allowBackup="true"android:icon="@drawable/ic_launcher"android:label="@string/app_name" android:theme="@style/AppTheme">
-- 取消 ActionBar 配置 :?android:theme="@android:style/Theme.Holo.Dialog.NoActionBar" ;
<applicationandroid:allowBackup="true"android:icon="@drawable/ic_launcher"android:label="@string/app_name" android:theme="@android:style/Theme.Holo.Dialog.NoActionBar">
3. 使用代碼控制 ActionBar 顯示 隱藏
(1) ActionBar 相關方法
ActionBar 相關方法解析 :?
-- Activity 中獲取 ActionBar 對象 : 使用 getActionBar() 方法, 即可獲取;
-- 設置 ActionBar 顯示 : ActionBar.show() 方法;
-- 設置 ActionBar 隱藏 : ActionBar.hide() 方法;
(2) Activity 代碼示例
package cn.org.octopus.action_bar;import android.app.ActionBar; import android.app.Activity; import android.app.Fragment; import android.os.Bundle; import android.view.LayoutInflater; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.view.ViewGroup; import android.widget.Toast;public class MainActivity extends Activity {private ActionBar actionBar;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);if (savedInstanceState == null) {/* 獲取 Fragment 管理器, 開始 Fragment 事務, 向 R.id.contaner 組件中添加一個 Fragment */getFragmentManager().beginTransaction().add(R.id.container, new PlaceholderFragment()).commit();}actionBar = getActionBar();}/*** 自定義一個 Fragment, 該 Fragment 主要存放主界面布局*/public static class PlaceholderFragment extends Fragment {public PlaceholderFragment() {}@Overridepublic View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {/* 加載布局文件, 初始化組件, 并返回 */View rootView = inflater.inflate(R.layout.fragment_main, container,false);return rootView;}}public void onClick(View view) {int id = view.getId();switch (id) {case R.id.actionbar_show:actionBar.show();Toast.makeText(getApplicationContext(), "顯示 ActionBar", Toast.LENGTH_LONG).show();;break;case R.id.actionbar_hide:actionBar.hide();Toast.makeText(getApplicationContext(), "隱藏 ActionBar", Toast.LENGTH_LONG).show();break;default:break;}} }
(3) 布局文件代碼示例?
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"android:paddingBottom="@dimen/activity_vertical_margin"android:paddingLeft="@dimen/activity_horizontal_margin"android:paddingRight="@dimen/activity_horizontal_margin"android:paddingTop="@dimen/activity_vertical_margin"tools:context="cn.org.octopus.action_bar.MainActivity$PlaceholderFragment" ><LinearLayout android:id="@+id/actionbar_visible"android:layout_width="match_parent"android:layout_height="wrap_content"android:background="#00FF00"android:orientation="vertical"><TextView android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_gravity="center_horizontal"android:text="控制 ActionBar 顯示 和 隱藏"android:textStyle="bold"android:textSize="20dp"android:layout_margin="10dp"/><LinearLayout android:layout_width="match_parent"android:layout_height="wrap_content"android:orientation="horizontal"><Button android:id="@+id/actionbar_show"android:layout_width="0dp"android:layout_weight="1"android:layout_height="wrap_content"android:gravity="center"android:layout_margin="10dp"android:textStyle="bold"android:text="顯示 ActionBar"android:onClick="onClick"/><Button android:id="@+id/actionbar_hide"android:layout_width="0dp"android:layout_weight="1"android:layout_height="wrap_content"android:gravity="center"android:layout_margin="10dp"android:textStyle="bold"android:text="隱藏 ActionBar"android:onClick="onClick"/> </LinearLayout></LinearLayout></RelativeLayout>
(4) 執(zhí)行結果
二. ActionBar 選項菜單
ActionItem 簡介 :?
-- 之前的手機 : 在老版本的手機中, 手機需要提供 MENU 按鍵, 有了 ActionBar 之后, 可以將 MENU 集成到 ActionBar 上, 就不強制手機集成 MENU 按鍵了;
-- ActionItem 實現方式 : 有兩種方式可以實現, 一種是純代碼形式, 在代碼中生成, 一種是在配置文件中配置菜單項;
1. 使用代碼控制選項菜單
MenuItem.setShowAsAction()方法 : 設備選項菜單是否顯示在 ActionBar 上;
-- SHOW_AS_ACTION_ALWAYS 參數 : 總是顯示 Menu 菜單;
-- SHOW_AS_ACTION_COLLAPSE_ACTION_VIEW 參數 : ActionView 折疊成普通菜單;
-- SHOW_AS_ACTION_NEVER 參數 : 不顯示 Menu 菜單;
-- SHOW_AS_ACTION_IF_ROOM 參數 : 位置足夠時顯示 菜單;
-- SHOW_AS_ACTION_WITH_TEXT 參數 : 顯示 Menu 在 ActionBar 上, 并顯示菜單項文本;
2. 配置文件控制選項菜單
(1) 配置文件解析
<item /> 標簽解析 :?
-- 所處位置 : 在 menu.xml 配置文件中的 第一層, 或者 最里層;
-- <item /> 包含 <menu /> : <menu /> 表示一個菜單, 一個 <item /> 中可以有多個菜單;
-- 最里層 <item /> : 具體的每個菜單也是由 <item /> 表示的, 此時只需要指定 android:id 和 android:tittle 兩個屬性;?
<menu /> 標簽解析 : 代表一個菜單選項;
-- 所處位置 : <item /> 標簽之下, 處于配置文件第三層;
-- 子標簽 : <menu /> 標簽下 有 <group /> 子標簽;
<group /> 標簽解析 : 在 <menu /> 標簽下, 代表一組帶單選項;
(2) 配置文件示例
(3) Activity 中加載菜單
@Overridepublic boolean onCreateOptionsMenu(Menu menu) {/* 加載 main.xml 菜單, 在 ActionBar 中顯示配置文件中定義的菜單內容 */getMenuInflater().inflate(R.menu.main, menu);return super.onCreateOptionsMenu(menu);}@Overridepublic boolean onOptionsItemSelected(MenuItem item) {/** 點擊 menu 菜單中選項回調事件 * id 在 menu.xml 中的 <item /> 標簽中的 android:id 屬性中定義*/int id = item.getItemId();switch (id) {case R.id.menu1_item1:toast("menu1_item1");break;case R.id.menu1_item2:toast("menu1_item2");break;case R.id.menu1_item3:toast("menu1_item3");break;case R.id.menu2_item1:toast("menu2_item1");break;case R.id.menu2_item2:toast("menu2_item2");break;case R.id.menu2_item3:toast("menu2_item3");break;case R.id.menu3:toast("menu3");break;default:break;}if (id == R.id.action_settings) {return true;}return super.onOptionsItemSelected(item);}
(4) 執(zhí)行效果?
三. 圖標導航
1. ActionBar 方法介紹
ActionBar 相關方法簡介 :?
-- setDisplayHomeAsUpEnable(boolean) : 設置是否將左側設置為可點擊圖標, 并在圖標上添加左箭頭;
-- setDisplayOption(int) : 設置 ActionBar 的顯示選項;
-- setDisplayShowHomeEnable(boolean) : 設置是否顯示應用程序圖標;
-- setHomeButtonEnable(boolean) : 設置是否將應用程序圖表轉換為可點擊按鈕;
2. 相關代碼
設置不顯示應用圖標并添加左箭頭 :?
actionBar = getActionBar();/* 設置將左側圖標設置成可點擊圖標, 并添加一個左箭頭 */actionBar.setDisplayHomeAsUpEnabled(true);/* 不顯示應用程序圖標 */actionBar.setDisplayShowHomeEnabled(false);
@Overridepublic boolean onOptionsItemSelected(MenuItem item) {/** 點擊 menu 菜單中選項回調事件 * id 在 menu.xml 中的 <item /> 標簽中的 android:id 屬性中定義*/int id = item.getItemId();switch (id) {case android.R.id.home:toast("點擊回退鍵");break;
3. 運行示例?
四. ActionBar 上添加 ActionView?
1. 代碼解析
<item /> 標簽在 xml 文件中配置 :?
--?android:actionViewClass 屬性 : 在 ActionBar 上顯示一個已定義的組件, 設置類的全路徑名稱;
--?android:actionLayout 屬性 : 設置在 ActionBar 上顯示一個布局文件;
--?android:orderInCategory屬性 : 表示菜單中的優(yōu)先級, 用于 Action View 在 ActionBar 上進行排序;
代碼示例 :?
<!-- android:orderInCategory 屬性 : 表示優(yōu)先級, 用于進行 item 排序 --><item android:id="@+id/search"android:title="搜索"android:orderInCategory="100"android:showAsAction="always"android:actionViewClass="android.widget.SearchView"/><item android:id="@+id/layout"android:title="layout"android:showAsAction="always"android:orderInCategory="100"android:actionLayout="@layout/layout"/>
2. 執(zhí)行結果?
五. ActionBar Tab 導航
1. ActionBar 相關代碼解析
(1) ActionBar 開啟導航相關方法
開啟 Tab 導航 :?actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
-- ActionBar 有三種導航方式 : ?ActionBar.NAVIGATION_MODE_TABS ?Tab 導航,?ActionBar.NAVIGATION_MODE_LIST ?List 導航,?ActionBar.NAVIGATION_MODE_STANDARD ?普通導航;
-- 代碼示例 :?
/* 獲取 ActionBar */ActionBar actionBar = getActionBar();/* 設置 ActionBar 的導航方式* -- ActionBar.NAVIGATION_MODE_TABS : Tab 導航 * -- ActionBar.NAVIGATION_MODE_LIST : List 導航* -- ActionBar.NAVIGATION_MODE_STANDARD : 普通導航 */actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
(2) ActionBar 添加標簽方法?
創(chuàng)建標簽并設置 :?
-- 創(chuàng)建標簽方法 : Tab tab =?actionBar.newTab();
-- 設置標簽 : tab.setText(tabName);
-- 設置 Tab 監(jiān)聽器 : tab.setTabListener(listener), 監(jiān)聽哪個標簽被選中, 取消選中, 釋放 動作;
-- 為 ActionBar 設置標簽 : actionBar.setTab(tab);
-- 示例代碼?:?
Tab tab1 = actionBar.newTab().setText("第一頁").setTabListener(this);Tab tab2 = actionBar.newTab().setText("第二頁").setTabListener(this);Tab tab3 = actionBar.newTab().setText("第三頁").setTabListener(this);actionBar.addTab(tab1);actionBar.addTab(tab2);actionBar.addTab(tab3);
(3) Tab 事件監(jiān)聽器
實現?TabListener 接口 : 一般是 Activity 實現該接口;
--?onTabReselected() 抽象方法 : 在 標簽被選中時回調;
--?onTabUnselected() 抽象方法 : 在 標簽取消選中時回調;
--?onTabSelected() 抽象方法 : 在標簽選中時回調;
代碼示例 :?
public class TabNavigationActivity extends Activity implements TabListener {@Overridepublic void onTabSelected(Tab tab, FragmentTransaction ft) {Fragment fragment = new TabFragment();/* 設置參數傳遞 */Bundle bundle = new Bundle();bundle.putInt(TabFragment.key, tab.getPosition() + 1);fragment.setArguments(bundle);/* 創(chuàng)建 Fragment 管理器 */FragmentManager manager = getFragmentManager();/* 開啟事務 */FragmentTransaction transaction = manager.beginTransaction();transaction.replace(R.id.holder, fragment);transaction.commit();}/*** Tab 取消選中時回調*/@Overridepublic void onTabUnselected(Tab tab, FragmentTransaction ft) {}/*** Tab 釋放時回調*/@Overridepublic void onTabReselected(Tab tab, FragmentTransaction ft) {}}
2. Fragement 創(chuàng)建相關代碼解析
(1) Fragment 參數傳遞
a. 創(chuàng)建 Fragement 對象
創(chuàng)建自定義的 Fragment : Fragment fragment = new TabFragment();
b. 創(chuàng)建 Bundle 并設置參數
創(chuàng)建 Bundle : Bundle bundle = new Bundle();
設置參數 :?bundle.putInt();
像 Fragement 設置參數 :?fragment.setArguments(bundle);
(2) Fragement 事務開啟并提交
獲取事務管理器 :?FragmentManager manager = getFragmentManager();
開啟事務 :?FragmentTransaction transaction = manager.beginTransaction();
執(zhí)行事務 :?transaction.replace(R.id.holder, fragment);
-- R.id.Holder 參數 : 這個是 布局文件 的根標簽的?id;
-- Fragment 參數 : 要顯示的 Fragement, 將這個 Fragement 設置到 上面 id 的 ViewGroup 布局中;
提交事務 :?transaction.commit();
(3) 代碼示例
代碼示例 :?
@Overridepublic void onTabSelected(Tab tab, FragmentTransaction ft) {Fragment fragment = new TabFragment();/* 設置參數傳遞 */Bundle bundle = new Bundle();bundle.putInt(TabFragment.key, tab.getPosition() + 1);fragment.setArguments(bundle);/* 創(chuàng)建 Fragment 管理器 */FragmentManager manager = getFragmentManager();/* 開啟事務 */FragmentTransaction transaction = manager.beginTransaction();transaction.replace(R.id.holder, fragment);transaction.commit();}
3. 自定義 Fragement 相關解析
(1) 獲取 Activity 對象
獲取方法 :?Activity activity = getActivity(), 直接調用 getActivity() 即可獲取;
用處 : 該 Activity 對象在 創(chuàng)建布局文件時使用;
(2) 獲取參數
參數獲取 : 在創(chuàng)建 Fragement 時通過 Bundle 對象傳入了參數, 可以通過調用 getBundle() 方法, 獲取 Bundle 對象;
-- 代碼示例 :?
/* 獲取從 Activity 傳入的數據 */Bundle bundle = getArguments();int tab = bundle.getInt(key);
(3) 創(chuàng)建 ImagView 組件
創(chuàng)建組件并設置參數 :?
-- 創(chuàng)建組件?:?ImageView imageView = new ImageView(activity);
-- 設置參數 : 創(chuàng)建一個?LayoutParams 對象, 并設置參數進去, 寬 高 都設置為 match_parent;
-- 代碼示例 :?
/* 設置一個充滿全屏的圖片 */ImageView imageView = new ImageView(activity);LayoutParams layoutParams = new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT);imageView.setLayoutParams(layoutParams);switch (tab) {case 1:imageView.setImageResource(R.drawable.a);break;case 2:imageView.setImageResource(R.drawable.b);break;case 3:imageView.setImageResource(R.drawable.c);break;default:break;}
4. 代碼示例
(1) Activity 示例代碼
TabNavigationActivity.java 代碼 :?
package cn.org.octopus.action_bar;import android.app.ActionBar; import android.app.ActionBar.Tab; import android.app.ActionBar.TabListener; import android.app.Activity; import android.app.Fragment; import android.app.FragmentManager; import android.app.FragmentTransaction; import android.os.Bundle; import android.view.LayoutInflater; import android.view.MenuItem; import android.view.View; import android.view.ViewGroup; import android.view.ViewGroup.LayoutParams; import android.widget.ImageView;public class TabNavigationActivity extends Activity implements TabListener {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_tab);/* 獲取 ActionBar */ActionBar actionBar = getActionBar();/* 設置 ActionBar 的導航方式* -- ActionBar.NAVIGATION_MODE_TABS : Tab 導航 * -- ActionBar.NAVIGATION_MODE_LIST : List 導航* -- ActionBar.NAVIGATION_MODE_STANDARD : 普通導航 */actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);/* 設置 ActionBar 左側圖標可點擊, 添加箭頭 */actionBar.setDisplayHomeAsUpEnabled(true);Tab tab1 = actionBar.newTab().setText("第一頁").setTabListener(this);Tab tab2 = actionBar.newTab().setText("第二頁").setTabListener(this);Tab tab3 = actionBar.newTab().setText("第三頁").setTabListener(this);actionBar.addTab(tab1);actionBar.addTab(tab2);actionBar.addTab(tab3);}@Overridepublic boolean onOptionsItemSelected(MenuItem item) {int id = item.getItemId();switch (id) {/* 設置的點擊圖標按鈕回退 */case android.R.id.home:finish();break;default:break;}return super.onOptionsItemSelected(item);}@Overridepublic void onTabSelected(Tab tab, FragmentTransaction ft) {Fragment fragment = new TabFragment();/* 設置參數傳遞 */Bundle bundle = new Bundle();bundle.putInt(TabFragment.key, tab.getPosition() + 1);fragment.setArguments(bundle);/* 創(chuàng)建 Fragment 管理器 */FragmentManager manager = getFragmentManager();/* 開啟事務 */FragmentTransaction transaction = manager.beginTransaction();transaction.replace(R.id.holder, fragment);transaction.commit();}/*** Tab 取消選中時回調*/@Overridepublic void onTabUnselected(Tab tab, FragmentTransaction ft) {}/*** Tab 釋放時回調*/@Overridepublic void onTabReselected(Tab tab, FragmentTransaction ft) {}public static class TabFragment extends Fragment{public static final String key = "key";@Overridepublic View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {/* 獲取該 Fragment 被嵌入的 上下文對象 */Activity activity = getActivity();/* 獲取從 Activity 傳入的數據 */Bundle bundle = getArguments();int tab = bundle.getInt(key);/* 設置一個充滿全屏的圖片 */ImageView imageView = new ImageView(activity);LayoutParams layoutParams = new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT);imageView.setLayoutParams(layoutParams);switch (tab) {case 1:imageView.setImageResource(R.drawable.a);break;case 2:imageView.setImageResource(R.drawable.b);break;case 3:imageView.setImageResource(R.drawable.c);break;default:break;}return imageView;}}}
(2) 布局文件代碼
activity_tab.xml 代碼 :?
<?xml version="1.0" encoding="utf-8"?> <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"android:id="@+id/holder"android:layout_width="match_parent"android:layout_height="match_parent" />
(3) 執(zhí)行效果?
六. ActionBar 實現下拉式導航
1. ActionBar 相關方法
a .設置 List 導航方式 ?
設置方法 : actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_LIST);
代碼示例 :?
/* 設置 ActionBar 的導航方式* -- ActionBar.NAVIGATION_MODE_TABS : Tab 導航 * -- ActionBar.NAVIGATION_MODE_LIST : List 導航* -- ActionBar.NAVIGATION_MODE_STANDARD : 普通導航 */actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_LIST);
b. 創(chuàng)建一個 SpinnerAdapter?
適配器創(chuàng)建 : 使用 ArrayAdapter 適配器, 傳入 上下文對象, 適配器條目布局, 文字顯示組件id, String數組;
代碼示例 :?
/* 設置標題 */String[] strs = new String[]{"第一頁", "第二頁", "第三頁"};/* 設置 List導航 適配器 */SpinnerAdapter adapter = new ArrayAdapter<String>(getApplicationContext(), android.R.layout.simple_list_item_1, android.R.id.text1, strs);
c. 設置 List 回調接口
接口作用 : 當選中一個條目之后, 回調接口中的方法;
-- 接口名稱 :?ActionBar.OnNavigationListener;
-- 抽象方法 :?public boolean onNavigationItemSelected(int itemPosition, long itemId);
-- 代碼示例 :?
public class ListNavigationActivity extends Activity implements ActionBar.OnNavigationListener {@Overridepublic boolean onNavigationItemSelected(int itemPosition, long itemId) {/* 創(chuàng)建 Fragement */Fragment fragment = new TabFragment();/* 設置 Fragement 參數 */Bundle bundle = new Bundle();bundle.putInt(TabFragment.key, itemPosition + 1);fragment.setArguments(bundle);/* 置換 Fragement */FragmentManager manager = getFragmentManager();FragmentTransaction transaction = manager.beginTransaction();transaction.replace(R.id.list_holder, fragment);transaction.commit();return true;}}
d. 將適配器和回調接口設置給 ActionBar
/* 為 ActionBar 設置適配器和回調接口 */actionBar.setListNavigationCallbacks(adapter, this);2. 代碼示例
(1) Activity 示例
ListNavigationActivity.java 代碼示例 :?
package cn.org.octopus.action_bar;import android.app.ActionBar; import android.app.Activity; import android.app.Fragment; import android.app.FragmentManager; import android.app.FragmentTransaction; import android.os.Bundle; import android.view.MenuItem; import android.widget.ArrayAdapter; import android.widget.SpinnerAdapter;public class ListNavigationActivity extends Activity implements ActionBar.OnNavigationListener {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_list);/* 獲取 ActionBar */ActionBar actionBar = getActionBar();/* 設置 ActionBar 的導航方式* -- ActionBar.NAVIGATION_MODE_TABS : Tab 導航 * -- ActionBar.NAVIGATION_MODE_LIST : List 導航* -- ActionBar.NAVIGATION_MODE_STANDARD : 普通導航 */actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_LIST);/* 設置 ActionBar 左側圖標可點擊, 添加箭頭 */actionBar.setDisplayHomeAsUpEnabled(true);/* 設置標題 */String[] strs = new String[]{"第一頁", "第二頁", "第三頁"};/* 設置 List導航 適配器 */SpinnerAdapter adapter = new ArrayAdapter<String>(getApplicationContext(), android.R.layout.simple_list_item_1, android.R.id.text1, strs);/* 為 ActionBar 設置適配器和回調接口 */actionBar.setListNavigationCallbacks(adapter, this);}@Overridepublic boolean onNavigationItemSelected(int itemPosition, long itemId) {/* 創(chuàng)建 Fragement */Fragment fragment = new TabFragment();/* 設置 Fragement 參數 */Bundle bundle = new Bundle();bundle.putInt(TabFragment.key, itemPosition + 1);fragment.setArguments(bundle);/* 置換 Fragement */FragmentManager manager = getFragmentManager();FragmentTransaction transaction = manager.beginTransaction();transaction.replace(R.id.list_holder, fragment);transaction.commit();return true;}@Overridepublic boolean onOptionsItemSelected(MenuItem item) {int id = item.getItemId();switch (id) {/* 設置的點擊圖標按鈕回退 */case android.R.id.home:finish();break;default:break;}return super.onOptionsItemSelected(item);} }
(2) 執(zhí)行效果
作者?:?萬境絕塵?(octopus_truth@163.com)
轉載請注明出處?:?http://blog.csdn.net/shulianghan/article/details/39204393
示例代碼下載?:?
--?GitHub?:?https://github.com/han1202012/Octopus_ActionBar.git
--?CSDN?:?http://download.csdn.net/detail/han1202012/7913297
總結
以上是生活随笔為你收集整理的【Android 应用开发】 ActionBar 基础的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【iOS 开发】Objective -
- 下一篇: 【Android 应用开发】 Actio