► 使用 Tab
from
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
► 讓 action bar 的 overflow 一直顯示,不因手機有 menu鍵 而隱藏@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); }
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