【ActionBar的使用】,【ActionBar使用】

來源:互聯網
上載者:User

【ActionBar的使用】,【ActionBar使用】

在AS工程中使用ActionBar

簡單實用:

1、功能資訊清單檔中指定主題標籤屬性Theme.Holo或其子類

 1 <application android :theme="@android:style/Theme.Holo.Light" > 

2、可以自己指定顯示的表徵圖,預設是應用的表徵圖

1 <activity2             android:name=".UI.MainActivity"3             android:logo="@drawable/icon" />

3、在Activity中設定屬性

 1 @Override 2     protected void onCreate(Bundle savedInstanceState) { 3         super.onCreate(savedInstanceState); 4         setContentView(R.layout.activity_main); 5  6         android.app.ActionBar actionBar= getActionBar(); 7         actionBar.show();//設定顯示 8         //actionBar.hide();//設定隱藏 9         actionBar.setHomeButtonEnabled(true);10         actionBar.setDisplayShowHomeEnabled(true);//以上兩句是設定可以讓actionBar的表徵圖可以響應點擊事件11         actionBar.setDisplayHomeAsUpEnabled(true);//這一行用於返回效果12     }

  也可以設定Activity標籤屬性來設定隱藏

1 <activity2      android:name=".UI.WelComeActivity"3      android:theme="@android:style/Theme.NoTitleBar">

4、在res資來源目錄下建立一個menu檔案夾,在menu檔案夾建立一個actionbar_menu.xml

  android:showAsAction :標籤屬性,根據需要自行設定

  android:title :一般都設定,根據需要,但並不一定會顯示,根據showAsAction標籤影響

 1 <?xml version="1.0" encoding="utf-8"?> 2 <menu xmlns:android="http://schemas.android.com/apk/res/android"> 3     <item 4         android:id="@+id/menu_seek" 5         android:showAsAction="always" 6         android:actionViewClass="android.widget.SearchView" 7         android:title="搜尋" /> 8     <item 9         android:id="@+id/menu_history"10         android:showAsAction="never"11         android:title="查看曆史" />12     <item13         android:id="@+id/menu_down"14         android:showAsAction="never"15         android:title="查看下載" />16 </menu>
fRoom 會顯示在Item中,但是如果已經有4個或者4個以上的Item時會隱藏在溢出列表中。當然個
數並不僅僅局限於4個,依據螢幕的寬窄而定
never 永遠不會顯示。只會在溢出列表中顯示,而且只顯示標題,所以在定義item的時候,最好
把標題都帶上。
always 無論是否溢出,總會顯示。
withText withText值示意Action bar要顯示文本標題。Action bar會儘可能的顯示這個
標題,但是,如果表徵圖有效並且受到Action bar空間的限制,文本標題有可
能顯示不全。
   collapseActionView   聲明了這個操作視窗應該被摺疊到一個按鈕中,當使用者選擇這個按鈕時,這個操作視窗展開。否則,
這個操作視窗在預設的情況下是可見的,並且即便在用於不適用的時候,也要佔據操作欄的有效空間。
一般要配合ifRoom一起使用才會有效果。

 

5、重寫回調方法,就可以顯示了

1 @Override2     public boolean onCreateOptionsMenu(Menu menu) {3         MenuInflater inflater = getMenuInflater();4         inflater.inflate(R.menu.actionbar_menu, menu);5         return super.onCreateOptionsMenu(menu);6     }

點擊顯示效果

6、重寫點擊回調方法,根據需要添加代碼

  android.R.id.home預設指定的是左上方的表徵圖點擊響應

 1 @Override 2  public boolean onOptionsItemSelected(MenuItem item) { 3     switch (item.getItemId()) { 4         case android.R.id.home: 5             Toast.makeText (this, "你點擊了“home”按鍵!" , Toast.LENGTH_SHORT).show() ; 6             return true; 7         case R.id. menu_seek: 8             Toast.makeText (this, "你點擊了“搜尋”按鍵!" , Toast.LENGTH_SHORT).show() ; 9             return true;10         case R.id. menu_down:11             Toast.makeText (this, "你點擊了“查看下載”按鍵!" , Toast.LENGTH_SHORT).show() ;12             return true;13         case R.id. menu_history:14             Toast.makeText (this, "你點擊了“查看曆史”按鍵!" , Toast.LENGTH_SHORT).show() ;15             return true;16         default:17             return super .onOptionsItemSelected(item);18     }19 }

  一般左上方的表徵圖點擊都是回退到主介面,在表徵圖的點擊響應添加代碼

 1 case android.R.id.home: 2     //finish();這個只是簡單的銷毀了當前的介面 3     Intent upIntent = NavUtils.getParentActivityIntent(this);//擷取到跳轉至父Activity的Intent 4     //如果父Activity和當前Activity是在同一個Task中的,則直接調用navigateUpTo()方法進行跳轉 5     if (NavUtils.shouldUpRecreateTask(this, upIntent)) { 6         android.support.v4.app.TaskStackBuilder.create(this) 7                    .addNextIntentWithParentStack(upIntent) 8                    .startActivities(); 9     } else {//如果不是在同一個Task中的,則需要藉助TaskStackBuilder來建立一個新的Task10         upIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);11         NavUtils.navigateUpTo(this, upIntent);12     }13     Toast.makeText(this, "你點擊了“home”按鍵!", Toast.LENGTH_SHORT).show();14 return true;

 

 

  

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.