標籤: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使用方法