標籤:android style blog http color io 使用 ar 2014
ActionBar 出現在Android 3.0後 API 11之後,替代了3.0之前的標題列
ActionBar分為四個地區
A : 表徵圖 || B : 標題 || C : 內容切換 || D :菜單
常用方法
Activity.getActionBar() // 在Activity中得到ActionBar對象
A:
ActionBar.setDisplayHomeAsUpEnabled(boolean) // 設定A地區是否可以點擊
ActionBar.setDisplayShowHomeEnabled(boolean) // 設定A地區表徵圖是否顯示
事件監聽 Activity重寫onMenuItemSelected方法,android.R.id.home為地區按鈕id
@Overridepublic boolean onMenuItemSelected(int featureId, MenuItem item) { if (item.getItemId() == android.R.id.home) { // TODO Toast.makeText(this, "Home", Toast.LENGTH_SHORT).show(); } return super.onMenuItemSelected(featureId, item);}
B:
ActionBar.setTitle(CharSequence) // 設定地區顯示內容
ActionBar.setDisplayShowTitleEnabled(false); // 設定地區是否顯示
C:
ActionBar.setNavigationMode(int) // 設定此地區的樣式
ActionBar.NAVIGATION_MODE_STANDARD // 預設
ActionBar.NAVIGATION_MODE_TABS // 選項卡
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);ActionBar.TabListener tabListener = new ActionBar.TabListener() { @Override public void onTabUnselected(Tab tab, FragmentTransaction ft) {} @Override public void onTabSelected(Tab tab, FragmentTransaction ft) {} @Override public void onTabReselected(Tab tab, FragmentTransaction ft) {}};actionBar.addTab(actionBar.newTab().setText("Tab_01").setTabListener(tabListener));actionBar.addTab(actionBar.newTab().setText("Tab_02").setTabListener(tabListener));actionBar.addTab(actionBar.newTab().setText("Tab_03").setTabListener(tabListener)); // 如果不加監聽程式會報錯
ActionBar.NAVIGATION_MODE_LIST // List顯示
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_LIST);String[] lists = { "List_01", "List_02", "List_03" };ArrayAdapter<String> listAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, lists);ActionBar.OnNavigationListener navListener = new ActionBar.OnNavigationListener() { @Override public boolean onNavigationItemSelected(int arg0, long arg1) { return false; }};actionBar.setListNavigationCallbacks(listAdapter, navListener);
D:
關於D菜單地區相當於重寫3.0之前的菜單,在螢幕顯示不下的會顯示三個點,點擊會展開
項的產生與事件監聽,重寫Activity中的以下方法
@Overridepublic boolean onCreateOptionsMenu(Menu menu) { super.getMenuInflater().inflate(R.menu.main, menu); // 填充Menu return true;}@Overridepublic boolean onOptionsItemSelected(MenuItem item) { int id = item.getItemId(); // TODO 根據id判斷處理 return super.onOptionsItemSelected(item);}
Android ActionBar簡單使用