Android UI Action Bar之ActionBarSherlock

ActionBarSherlock是Android兼容开发包的一个扩展,在所有的Android版本中都能实现Action Bar。对于Android 4.0及更高版本,他会自动使用Native ActionBar,而对于之前没有Action Bar功能的Android版本,基于Ice Cream Sandwich的实现自定义的Action Bar布局。能够让开发者轻松开发一款带Action Bar的应用,并且适用于Android 2.x及其以上所有版本。

***Action Bar来源于Honeycomb的app库,logo显示在左边,导航标签与操作项目在右边(加溢出菜单按钮)。

https://github.com/JakeWharton/ActionBarSherlock

版本:ActionBarSherlock-4.4.0

(1)从标准Android切换到ActionBarSherlock
既然是兼容包,就意味着要使用一些特有的东西来替换Android标准的东西。


(2)默认样式

res/menu/default_style.xml

Xml代码  收藏代码
  1. <menu xmlns:android="http://schemas.android.com/apk/res/android" >  
  2.     <item  
  3.         android:id="@+id/action_settings"  
  4.         android:orderInCategory="100"  
  5.         android:showAsAction="never"  
  6.         android:title="@string/action_settings"/>  
  7. </menu>  


Java代码  收藏代码
  1. @Override  
  2. public boolean onCreateOptionsMenu(Menu menu) {  
  3.     MenuInflater inflator = getSupportMenuInflater();  
  4.     inflator.inflate(R.menu.default_style, menu);  
  5.     return true;  
  6. }  

 

对比淘宝4.0的消息设置:


(3)Tab样式
Java代码  收藏代码
  1. @Override  
  2. protected void onCreate(Bundle savedInstanceState) {  
  3.     super.onCreate(savedInstanceState);  
  4.     setContentView(R.layout.activity_tab_style);  
  5.   
  6.     ActionBar actionBar = getSupportActionBar();  
  7.     actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);  
  8.       
  9.     Tab tab1 = actionBar.newTab();  
  10.     tab1.setText("Tab 1");  
  11.     tab1.setTabListener(this);  
  12.     actionBar.addTab(tab1);  
  13.       
  14.     Tab tab2 = actionBar.newTab();  
  15.     tab2.setText("Tab 2");  
  16.     tab2.setTabListener(this);  
  17.     actionBar.addTab(tab2);  
  18.       
  19.     Tab tab3 = actionBar.newTab();  
  20.     tab3.setText("Tab 3");  
  21.     tab3.setTabListener(this);  
  22.     actionBar.addTab(tab3);  
  23.   
  24. }  
  25.   
  26. @Override  
  27. public void onTabSelected(Tab tab, FragmentTransaction ft) {  
  28.     Toast.makeText(this, "change:" + tab.getPosition(), Toast.LENGTH_SHORT).show();  
  29. }  



对比淘宝4.0的微淘:


(4)List样式
Java代码  收藏代码
  1. @Override  
  2. protected void onCreate(Bundle savedInstanceState) {  
  3.     super.onCreate(savedInstanceState);  
  4.     setContentView(R.layout.activity_list_style);  
  5.   
  6.     ActionBar actionBar = getSupportActionBar();  
  7.     actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_LIST);  
  8.   
  9.     ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1);  
  10.     for (int i = 1; i <= 5; i++) {  
  11.         adapter.add("item" + i);  
  12.     }  
  13.     actionBar.setListNavigationCallbacks(adapter,  
  14.             new OnNavigationListener() {  
  15.                 @Override  
  16.                 public boolean onNavigationItemSelected(int itemPosition, long itemId) {  
  17.                     Toast.makeText(ListStyleActivity.this, "pos" + itemPosition, Toast.LENGTH_SHORT).show();  
  18.                     return false;  
  19.                 }  
  20.             });  
  21. }  

 

对比淘宝4.0的我的购物车:


posted @ 2016-11-05 15:57  天涯海角路  阅读(120)  评论(0)    收藏  举报