標籤:android style http io os ar 使用 java strong
http://www.bdqn.cn/news/201308/10625.shtml
摘要: 告別ActionBarSherlock——android.support包也能打造相容2.x的ActionBar(1)
ActionBar是Android 3.0的產物 一直延伸到現在最新的4.3
就個人而言 ActionBar相比傳統的彈出式菜單 更加簡潔
但是ActionBar只有API 10以上(包括API 10)才能嘗到
於是有些大神便打造出了ActionBarSherlock,為2.x帶來了一個相容的ActionBar庫
在今年的Google I/O,Google終於打算把官方的相容2.x的ActionBar庫放出來給大家使用。
現在我也分享一下使用的方法。
大家可以通過SDK Manager更新Android Support Library到ver18來獲得這個庫
更新後可以在 <sdk目錄>/extras/android/support/v7 找到appcompat檔案夾 這個裡面就是相容2.x的ActionBar的庫
或者手動下載:http://pan.baidu.com/share/link?shareid=3793697689&uk=1527727709
匯入庫後
需要在styles.xml更改主題為(一定要記得改 否則啟動時會FC)
[html]
1
2
<!-- 這個是黑色主題 -->
<style name="AppBaseTheme" parent="Theme.AppCompat">
[html]
1
2
<!-- 這個是白色主題 -->
<style name="AppBaseTheme" parent="Theme.AppCompat.Light">
[html]
1
2
<!-- 這個是白色主題帶黑色ActionBar -->
<style name="AppBaseTheme"parent="Theme.AppCompat.Light.DarkActionBar">
下面是程式碼範例(注意是public class XXXActivity extends ActionBarActivity,而不是extends Activity):
[java]
package com.example.testabc;
import android.os.Bundle;
import android.support.v4.view.MenuItemCompat;
import android.support.v7.app.ActionBarActivity;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.Toast;
public class MainActivity extends ActionBarActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuItemCompat.setShowAsAction(
menu
.add("No.1")
.setIcon(android.R.drawable.ic_menu_rotate),
MenuItemCompat.SHOW_AS_ACTION_IF_ROOM);
MenuItemCompat.setShowAsAction(
menu
.add("No.2")
.setIcon(android.R.drawable.ic_menu_compass),
MenuItemCompat.SHOW_AS_ACTION_IF_ROOM);
MenuItemCompat.setShowAsAction(
menu
.add("No.3")
.setIcon(android.R.drawable.ic_menu_more),
MenuItemCompat.SHOW_AS_ACTION_IF_ROOM);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem menu) {
if (menu.getTitle() == "No.1"){
Toast.makeText(getApplicationContext(), "You clicked first button.", Toast.LENGTH_SHORT).show();
}
if (menu.getTitle() == "No.2"){
Toast.makeText(getApplicationContext(), "You clicked second button.", Toast.LENGTH_SHORT).show();
}
if (menu.getTitle() == "No.3"){
Toast.makeText(getApplicationContext(), "You clicked third button.", Toast.LENGTH_SHORT).show();
}
return super.onOptionsItemSelected(menu);
}
}
放
PS:有點納悶的就是 Theme.Compat.Light 白色主題 在2.x和4.x上的顯示效果不一樣,不過其他那兩個主題顯示是正常的。
可能還有朋友問我為什麼2.x上的顯示只有兩個按鈕,原因其實我螢幕太小了 第三個按鈕被分到 快顯功能表了,要按menu鍵才能找到。
告別ActionBarSherlock——Android.support包也能打造相容2.x的ActionBar(1)