Pro Android學習筆記(五一) ActionBar(4) 標準和Tab模式
阿新 • • 發佈:2018-12-21
之前,我們學習的Action Bar是標準模式,Tab模式的如下圖所示。
對於Tab,我們在Android學習筆記(二二): 多頁顯示-Tag的使用中學習過,但Action Bar的tab更適合fragment的使用。我們在之前實現的標準Action Bar的基礎上新增導航用的tab,程式碼如下:
public class TabbedActionBarDemo extends SearchTestCase3 implements ActionBar.TabListener{
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
workWithTabbedActionBar();
}
private void workWithTabbedActionBar(){
ActionBar bar = getActionBar();
bar.setTitle("Tabbed action bar"); //可以修改在AndroidManifest.xml中設定的action bar的title
ActionTab.Tab tab1 = bar.newTab();
tab1.setText("Tab1");
tab1.setTabListener(this); //如果我們忘了新增setTabListener(),在執行時會異常,設定null也不行。
bar.addTab(tab1);
bar.addTab(bar.newTab()
.setText("Tab2")
.setTabListener(this));
}
@Override //ActionBar.TabListener介面,在已選擇的基礎上,再次選擇的回撥函式
public void onTabReselected(Tab tab, FragmentTransaction ft) {
showInfo(tab.getText() + " onTabReselected() is called");
}
@Override //ActionBar.TabListener介面,選擇tab的回撥函式。目前為Tab1,當用戶選擇tab2時,先觸發tab1的onTabUnselected(),再觸發tab2的onTableSelected()
public void onTabSelected(Tab tab, FragmentTransaction ft) {
showInfo(tab.getText() + " onTabSelected() is called");
}
@Override //ActionBar.TabListener介面,不再選擇(選擇其他)的回撥函式
public void onTabUnselected(Tab tab, FragmentTransaction ft) {
showInfo(tab.getText() + " onTabUnselected() is called");
}
}
ActionBar.Tab很適合用於fragment,在不同的fragment中切換,此時,具體實現ActionBar.TabListener的可能就是Fragment的繼承類。