[Android]_ch11.3_Tab導覽列元件1
加上Tab導覽方式,可以使用ActionBar的Tab功能,步驟如下:
Step1:實作ActionBar.TabListener介面以處理使用者點選Tab的事件
Step2:透過newTab()初始化Tab後呼叫setText()/setIcon()設定Tab文字與圖示,並呼叫setTabListener()設定實作好的TabListener
Step3:ActionBar呼叫addTab()新增各個Tab
package com.derek.ch28_tab;
import android.app.ActionBar;
import android.app.ActionBar.TabListener;
import android.app.Activity;
import android.app.ActionBar.Tab;
import android.app.Fragment;
import android.app.FragmentTransaction;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//setContentView(R.layout.activity_main);
ActionBar actionBar=getActionBar();
actionBar.setDisplayShowHomeEnabled(false);
actionBar.setDisplayShowTitleEnabled(false);
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
Tab Tab1=actionBar.newTab();
Tab1.setText("郵件");
Tab1.setIcon(R.drawable.icon1);
Tab1.setTabListener(new MyTabListener<Fragment>());
Tab Tab2=actionBar.newTab();
Tab2.setText("購物");
Tab2.setIcon(R.drawable.icon2);
Tab2.setTabListener(new MyTabListener<Fragment>());
Tab Tab3=actionBar.newTab();
Tab3.setText("主頁");
Tab3.setIcon(R.drawable.icon3);
Tab3.setTabListener(new MyTabListener<Fragment>());
Tab Tab4=actionBar.newTab();
Tab4.setText("Q&A");
Tab4.setIcon(R.drawable.icon4);
Tab4.setTabListener(new MyTabListener<Fragment>());
actionBar.addTab(Tab1);
actionBar.addTab(Tab2);
actionBar.addTab(Tab3);
actionBar.addTab(Tab4);
}
public class MyTabListener<T extends Fragment> implements TabListener{
@Override
public void onTabSelected(Tab tab, FragmentTransaction ft) {
// TODO Auto-generated method stub
}
@Override
public void onTabUnselected(Tab tab, FragmentTransaction ft) {
// TODO Auto-generated method stub
}
@Override
public void onTabReselected(Tab tab, FragmentTransaction ft) {
// TODO Auto-generated method stub
}
}
}
package com.derek.ch28_tab;
import android.app.Fragment;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
public class Tab1 extends Fragment{
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view=inflater.inflate(R.layout.tab1,container, false);
return view;
}
}