如果你不想要Action bar,把Activity的主题设置为Theme.Holo.NoActionBar就可以了
<activity android:theme="@android:style/Theme.Holo.NoActionBar">
先得到Actionbar对象,再对其进行操作:show()或者hide()
ActionBar actionBar = getActionBar(); actionBar.hide();
actionBar.setDisplayHomeAsUpEnabled(true) // 给左上角图标的左边加上一个返回的图标 。对应ActionBar.DISPLAY_HOME_AS_UP
actionBar.setDisplayShowHomeEnabled(true) //使左上角图标可点击,对应id为android.R.id.home,对应ActionBar.DISPLAY_SHOW_HOME
actionBar.setDisplayShowCustomEnabled(true) // 使自定义的普通View能在title栏显示,即actionBar.setCustomView能起作用,对应ActionBar.DISPLAY_SHOW_CUSTOM
actionBar.setDisplayShowTitleEnabled(true) //对应ActionBar.DISPLAY_SHOW_TITLE
actionBar.hide() // 影藏标题栏
actionBar.show() // 显示标题栏
public class MainActionBarUnionVp extends Activity implements TabListener, OnPageChangeListener { private ActionBar actionBar; private ViewPager viewPager; private List<View> viewList; private MainPageAdapter viewPagerAdapter; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.actionbar_unionvp_main); viewPager = (ViewPager) findViewById(R.id.view_pager); actionBar = getActionBar(); actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS); actionBar.setDisplayShowTitleEnabled(false); actionBar.setDisplayShowHomeEnabled(true); Tab tab = actionBar.newTab().setText("第一页").setTabListener(this); actionBar.addTab(tab); tab = actionBar.newTab().setText("第二页").setTabListener(this); actionBar.addTab(tab); tab = actionBar.newTab().setText("第三页").setTabListener(this); actionBar.addTab(tab); viewList = new ArrayList<View>(); View view1 = (View) View.inflate(this, android.R.layout.activity_list_item, null); View view2 = (View) View.inflate(this, android.R.layout.expandable_list_content, null); View view3 = (View) View.inflate(this, android.R.layout.simple_dropdown_item_1line, null); viewList.add(view1); viewList.add(view2); viewList.add(view3); viewPagerAdapter = new MainPageAdapter(); viewPager.setAdapter(viewPagerAdapter); viewPager.setCurrentItem(0); viewPager.setOnPageChangeListener(this); } @Override public void onPageScrollStateChanged(int arg0) { } @Override public void onPageScrolled(int arg0, float arg1, int arg2) { } @Override public void onPageSelected(int arg0) { actionBar.getTabAt(arg0).select(); } public class MainPageAdapter extends PagerAdapter { @Override public Object instantiateItem(ViewGroup container, int position) { View view = viewList.get(position); viewPager.addView(view); return view; } @Override public void destroyItem(ViewGroup container, int position, Object object) { container.removeView(viewList.get(position)); } @Override public int getCount() { return viewList.size(); } @Override public boolean isViewFromObject(View arg0, Object arg1) { return arg0 == arg1; } } @Override public void onTabReselected(Tab tab, android.app.FragmentTransaction ft) { } @Override public void onTabSelected(Tab tab, android.app.FragmentTransaction ft) { viewPager.setCurrentItem(tab.getPosition()); } @Override public void onTabUnselected(Tab tab, android.app.FragmentTransaction ft) { } }layout 文件:actionbar_nuionvp_main.xml
<?xml version="1.0" encoding="utf-8"?> <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <android.support.v4.view.ViewPager android:id="@+id/view_pager" android:layout_width="fill_parent" android:layout_height="fill_parent" /> </FrameLayout>在AndroidManifest里的Activity加上属性android:uiOptions="splitActionBarWhenNarrow"后,普通ActionBar将不再显示在标题栏部分,而是显示在屏幕底部
<string-array name="actionbar_student"> <item>邓名侨</item> <item>刘天喜</item> <item>其黄石</item> <item>蔡宏远</item> </string-array>
// 生成一个SpinnerAdapter SpinnerAdapter adapter = ArrayAdapter.createFromResource(this, R.array.actionbar_student, android.R.layout.simple_spinner_dropdown_item); // 得到ActionBar ActionBar actionBar = getActionBar(); // 将ActionBar的操作模型设置为NAVIGATION_MODE_LIST actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_LIST); // 为ActionBar设置下拉菜单和监听器 actionBar.setListNavigationCallbacks(adapter, new DropDownListenser());其中类DropDownListenser为:
/** * * 实现 ActionBar.OnNavigationListener接口 */ class DropDownListenser implements OnNavigationListener { // 得到和SpinnerAdapter里一致的字符数组 String[] listNames = getResources().getStringArray( R.array.actionbar_student); /* 当选择下拉菜单项的时候,将Activity中的内容置换为对应的Fragment */ public boolean onNavigationItemSelected(int itemPosition, long itemId) { // 生成自定的Fragment FragmentDropList student = new FragmentDropList(); FragmentManager manager = getSupportFragmentManager(); FragmentTransaction transaction = manager.beginTransaction(); // 将Activity中的内容替换成对应选择的Fragment transaction.replace(R.id.droplist_content, student, listNames[itemPosition]); transaction.commit(); return true; } }
public class FragmentDropList extends Fragment { // Fragment对应的标签,当Fragment依附于Activity时得到 private String tag; @Override public void onAttach(Activity activity) { super.onAttach(activity); tag = getTag(); } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { TextView textView = new TextView(getActivity()); textView.setText(tag); return textView; } }