Android ActionBar使用方法

來源:互聯網
上載者:User

標籤:android   style   http   io   ar   color   使用   sp   java   

對於這ActionBar我想很多人都想瞭解一下到底是怎麼一個使用方法,以及它都存在哪些可操作的和使用的地方。
如所示:
<ignore_js_op> 
這便是ActionBar的基本內容。
獲得ActionBar的方法很簡單actionBar = this.getActionBar();
1.Home表徵圖地區:這裡的表徵圖當然可以在資訊清單檔中定義,也可以在代碼中定義,但是在代碼中定義需要請求設定的"資格",即需要添加以下代碼
requestWindowFeature(Window.FEATURE_LEFT_ICON);
setFeatureDrawableResource(Window.FEATURE_LEFT_ICON, resId);
而如果想要對home表徵圖進行點擊時間處理,則需要在為這個icon“使能”:
actionBar.setDisplayHomeAsUpEnabled(true);
此home表徵圖的id便是androi.R.id.home;
這個home點擊事件的監聽是在public boolean onMenuItemSelected(int featureId, MenuItem item)裡面擷取的,例如:

[Java] 純文字查看 複製代碼?
12345678 @Overridepublic boolean onMenuItemSelected(int featureId, MenuItem item) {switch (item.getItemId()) {case android.R.id.home:Toast.makeText(this, "home", 1).show();break;}}


2.標題區,相應的也有
actionBar.setDisplayShowTitleEnabled(true); 
當然我們也可以給標題列設定自己的風格,但是那樣也必須在setContentView(R.layout.custom_title);之前添加
requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);
然後就可以啟用
getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, resId);
resId便是自己想要的布局風格。
3.選項卡地區:這個地區,相信便是大家最想也是最近常使用的地區了,它同時有3中不同風格的類型:
ActionBar.NAVIGATION_MODE_TABS  ActionBar.NAVIGATION_MODE_LIST  ActionBar.NAVIGATION_MODE_STANDARD
ActionBar.NAVIGATION_MODE_STANDARD對於這個地區就不用多說了。
而對於前面兩種如所示:ActionBar.NAVIGATION_MODE_TABS
當點第一個按鈕時:
<ignore_js_op> 
代碼的實現其實也很簡單:

[Java] 純文字查看 複製代碼?
12345678 actionBar.setTitle("選項卡");actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);actionBar.addTab(actionBar.newTab().setText("Tab1").setTabListener(MainActivity.this));actionBar.addTab(actionBar.newTab().setText("Tab2").setTabListener(MainActivity.this));actionBar.addTab(actionBar.newTab().setText("Tab3").setTabListener(MainActivity.this));


這裡必須為tab添加tablistener事件,如果要操作tab切換事件只需要實現監聽方法即可。
implements ActionBar.TabListener
當點擊第二個按鈕時:
<ignore_js_op> 
顯示一個可以點擊下拉的列表,代碼如下

[Java] 純文字查看 複製代碼?
1234567 String[] str = { "1", "2", "3", "4", "5" };actionBar.setTitle("列表");actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_LIST);actionBar.setListNavigationCallbacks(new ArrayAdapter<String>(MainActivity.this,android.R.layout.simple_spinner_item, str),MainActivity.this);


同樣的需要實現以下它的點擊監聽事件implements ActionBar.OnNavigationListener 實現介面的方法便可對清單項目進行你想要的操作。
4.菜單地區:其實這個地區也就相當於菜單,只是它將menu放到ActionBar這裡而已,事件的監聽和布局跟操作menu是一樣的。
    而如果你想要將menu放到ActionBar上,只需要將你需要填放的item添加一個android:showAsAction這樣的屬性
他同時提供給你幾個可選的類型:ifRoom|withText 的意思上顯示icon和字型 never是從不,always是總是。
: <ignore_js_op> 

當點擊item1這個表徵圖地區時:出現一個:submenu。顧名思義 這個下拉的item就是從屬於item1的submenu,如果你想要達到這樣的效果,只需要在menu中添加一個submenu便可實現這個效果例如本執行個體的簡單實現:

[Java] 純文字查看 複製代碼?
010203040506070809101112131415161718192021222324252627 <itemandroid:id="@+id/action_settings"android:icon="@drawable/ic_launcher"android:orderInCategory="3"android:showAsAction="ifRoom|withText"android:title="item1"><menu><itemandroid:id="@+id/save"android:icon="@drawable/ic_launcher"android:orderInCategory="4"android:showAsAction="ifRoom|withText"android:title="item2"/><itemandroid:id="@+id/item8"android:icon="@drawable/ic_launcher"android:orderInCategory="5"android:showAsAction="ifRoom|withText"android:title="item3"/><itemandroid:id="@+id/item9"android:icon="@drawable/ic_launcher"android:orderInCategory="6"android:showAsAction="ifRoom|withText"android:title="item4"/></menu></item>


這樣就能達到如此效果。對於item的監聽已經強調過,它就是menu的item,所以監聽事件的處理在
public boolean onMenuItemSelected(int featureId, MenuItem item)
瞭解了這些,相信大家對這些地區對應的點擊事件的處理都不是難事。
最後貼下源碼,方便對照: <ignore_js_op> MyActionBar.rar (982.67 KB, 下載次數: 5126) 

Android ActionBar使用方法

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.