Action Bar - TabAction

1 篇文章 / 0 new
author
Action Bar - TabAction
► 使用 Tab
Scrolling tabs in the Play Store app.
 
首先啟用 tab 功能
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
接著就可依需要加入 tab 項目
String[] tList = {"Tab1","Tab2","Tab3"};
aBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
//注意, 當加入第一個tab時, 該tab即被 selected,會觸發onTabSelected()
for(int i=0;i<tList.length; i++)
    aBar.addTab(aBar.newTab().setText(tList[i]).setTabListener(tListener)));
每個tab 一定要指定 TabListener
private TabListener tListener = new TabListener() {
    @Override
    public void onTabSelected(Tab tab, FragmentTransaction ft) {    }
    @Override
    public void onTabUnselected(Tab tab, FragmentTransaction ft) {    }
    @Override
    public void onTabReselected(Tab tab, FragmentTransaction ft) {    }
};
當螢幕寬度足夠時則會自動放在同一行
► 讓 overflow action按鈕也顯示icon, 預設是沒有icon
@Override
public boolean onMenuOpened(int featureId, Menu menu) {
    if (featureId == Window.FEATURE_ACTION_BAR && menu != null) {
        if (menu.getClass().getSimpleName().equals("MenuBuilder")) {
            try {
                Method m = menu.getClass().getDeclaredMethod("setOptionalIconsVisible", Boolean.TYPE);
                m.setAccessible(true);
                m.invoke(menu, true);
            } catch (Exception e) {
            }
        }
    }
    return super.onMenuOpened(featureId, menu);
}
► 讓 action bar 的 overflow 一直顯示,不因手機有 menu鍵 而隱藏
private void overflowShowAlways() {  
    try {  
        ViewConfiguration config = ViewConfiguration.get(this);  
        Field menuKeyField = ViewConfiguration.class.getDeclaredField("sHasPermanentMenuKey");  
        menuKeyField.setAccessible(true);  
        menuKeyField.setBoolean(config, false);  
    } catch (Exception e) {  
        e.printStackTrace();  
    }  
}

from
Free Web Hosting