最近喜歡上看英文的督禽,經(jīng)過幾次的搜索中文后,發(fā)現(xiàn)中文沒看懂总处,反而英文看懂了狈惫,想直接看英文的,不懂在看中文鹦马,會發(fā)現(xiàn)很多中文的胧谈,都是看了英文的忆肾,再自己進行轉(zhuǎn)譯的。
參考資料:
-
Android Working with Action Bar這篇很詳細菱肖,主要是搜索框客冈,spinner,圖標的添加蔑滓。
注意幾點:- ActionBar的布局文件的設置在
res->menu->activity_main_actions.xml
- 主Activity通過
onCreateOptionsMenu
方法進行初始化郊酒。例如:
- ActionBar的布局文件的設置在
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.activity_main_actions, menu);
return super.onCreateOptionsMenu(menu);
}
- 通過
onOptionsItemSelected
進行觸發(fā)子項的點擊事件。例如:Mm
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Take appropriate action for each action item click
switch (item.getItemId()) {
case R.id.action_search:
// search action
return true;
case R.id.action_location_found:
// location found
LocationFound();
return true;
default:
return super.onOptionsItemSelected(item);
}
}
Android Tab Layout with Swipeable Views -->微信前幾板塊的
tabhost
的切換改變actionbar的整體顏色:Android – Theming ActionBar and the SearchView within it键袱,這個設置比較漂亮燎窘,但是要用上
android-support-v7-appcompat
,如何使用這個appcompat蹄咖,情況這里【Android】設定 Support Library-
知識點:
-
1.
menu的顯示方式boolean android.app.Activity.onCreateOptionsMenu(Menu menu)
的方法中褐健,加入MenuItem actionItem = menu.add("Action Button");
actionItem.setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM);
一共有
5種
顯示方式:從不顯示;如果有空間就顯示;總是顯示;顯示時跟隨文字;默認收縮其action view
> public static final int SHOW_AS_ACTION_NEVER = 0;
public static final int SHOW_AS_ACTION_IF_ROOM = 1;
public static final int SHOW_AS_ACTION_ALWAYS = 2;
public static final int SHOW_AS_ACTION_WITH_TEXT = 4;
public static final int SHOW_AS_ACTION_COLLAPSE_ACTION_VIEW = 8; -
注意:
SHOW_AS_ACTION_WITH_TEX
豎屏狀態(tài)不會顯示,只有橫屏的時候就會顯示
設置了action view
默認是顯示的澜汤,設置SHOW_AS_ACTION_COLLAPSE_ACTION_VIEW
則默認不顯示蚜迅。
-
2.
此方法設置后退或者點擊的效果setDisplayHomeAsUpEnabled(true)
2.1
在actionbar
上顯示后退的按鈕。在
oncreate
方法上加入:
// get action bar
ActionBar actionBar = getActionBar();
// Enabling Up / Back navigation
actionBar.setDisplayHomeAsUpEnabled(true);
- 并且:在
androidmanifest.xmnl
相應的<Activity >
加入android:parentActivityName
俊抵,例如
<activity
android:name="info.androidhive.actionbar.LocationFound"
android:label="@string/activity_new_message"
android:parentActivityName="info.androidhive.actionbar.MainActivity" >
</activity>
將會回退到父系的`MainActivity`上谁不。
-
2.2
在actionbar
有點擊的效果oncreate
加入:
> actionBar.setDisplayHomeAsUpEnabled(true);在
onOptionsItemSelected
中的id
為:android.R.id.home
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home:
toggle(); //動態(tài)判斷自動關(guān)閉或開啟SlidingMenu
return true;
}
return super.onOptionsItemSelected(item);
}
3.修改`actionbar`的樣式,一種靜態(tài)徽诲,一種動態(tài)刹帕,靜態(tài)就直接在xml導入`style`屬性,[Android Action Bar Style Generator](http://jgilfelt.github.io/android-actionbarstylegenerator/),所有主題的樣式都用谎替,包括`.9.png`圖片偷溺。動態(tài)如下:
- 修改背景:
ActionBar actionBar = getSupportActionBar();
actionBar.setBackgroundDrawable(new ColorDrawable(0xadf1b1ff));
- 修改actionbar的分割線
```
<item name="android:actionBarDivider">@null</item>
```
奇怪的錯誤
-
actionbar
不見了,發(fā)現(xiàn)最新的sdk
里面用v7
包的Theme.Appcompat.Light
主題已經(jīng)默認不帶actionbar
了钱贯,跟以前發(fā)生了很大的區(qū)別挫掏,導致getActionBar()
的時候,得到的值為null秩命。
- 教程:
【Android】啟用 Support Library 的 ActionBar
Android ActionBar完全解析尉共,使用官方推薦的最佳導航欄
Android ActionBar的基本用法
enter link description here
修改樣式的類型:
Android中自定義ActionBar的背景色等樣式style
Android 彈無虛發(fā)之第三彈:ActionBar 更換背景、顏色弃锐、文字爸邢,自定義主題Style - 擴展知識:.9.png的制作,有強大的在線制作工具
研究Android中的9 patch的圖片的原理以及如何去生成對應圖片 - 資源:
Google 提供了一整套的 ActionBar 圖示讓開發(fā)人員下載使用