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标准的东西。
Android UI Action Bar之ActionBarSherlock

(2)默认样式

res/menu/default_style.xml

<menu xmlns:android="http://schemas.android.com/apk/res/android" >
    <item
        android:id="@+id/action_settings"
        android:orderInCategory="100"
        android:showAsAction="never"
        android:title="@string/action_settings"/>
</menu>


@Override
public boolean onCreateOptionsMenu(Menu menu) {
    MenuInflater inflator = getSupportMenuInflater();
    inflator.inflate(R.menu.default_style, menu);
    return true;
}

Android UI Action Bar之ActionBarSherlock  Android UI Action Bar之ActionBarSherlock

对比淘宝4.0的消息设置:
Android UI Action Bar之ActionBarSherlock

(3)Tab样式
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_tab_style);

    ActionBar actionBar = getSupportActionBar();
    actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
    
    Tab tab1 = actionBar.newTab();
    tab1.setText("Tab 1");
    tab1.setTabListener(this);
    actionBar.addTab(tab1);
    
    Tab tab2 = actionBar.newTab();
    tab2.setText("Tab 2");
    tab2.setTabListener(this);
    actionBar.addTab(tab2);
    
    Tab tab3 = actionBar.newTab();
    tab3.setText("Tab 3");
    tab3.setTabListener(this);
    actionBar.addTab(tab3);

}

@Override
public void onTabSelected(Tab tab, FragmentTransaction ft) {
    Toast.makeText(this, "change:" + tab.getPosition(), Toast.LENGTH_SHORT).show();
}

Android UI Action Bar之ActionBarSherlock

对比淘宝4.0的微淘:
Android UI Action Bar之ActionBarSherlock

(4)List样式
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_list_style);

    ActionBar actionBar = getSupportActionBar();
    actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_LIST);

    ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1);
    for (int i = 1; i <= 5; i++) {
        adapter.add("item" + i);
    }
    actionBar.setListNavigationCallbacks(adapter,
            new OnNavigationListener() {
                @Override
                public boolean onNavigationItemSelected(int itemPosition, long itemId) {
                    Toast.makeText(ListStyleActivity.this, "pos" + itemPosition, Toast.LENGTH_SHORT).show();
                    return false;
                }
            });
}

Android UI Action Bar之ActionBarSherlock  Android UI Action Bar之ActionBarSherlock

对比淘宝4.0的我的购物车:
Android UI Action Bar之ActionBarSherlock

你可能感兴趣的:(android,UI)