MainActivity.java
package com.example.actionbarmenu; import android.app.ActionBar; import android.app.ActionBar.Tab; import android.app.ActionBar.TabListener; import android.app.Activity; import android.app.Fragment; import android.app.FragmentTransaction; import android.os.Bundle; import android.view.LayoutInflater; import android.view.Menu; import android.view.View; import android.view.ViewGroup; public class MainActivity extends Activity{ @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); final ActionBar ab = getActionBar(); // set defaults for logo & home up ab.setDisplayHomeAsUpEnabled(false); ab.setDisplayUseLogoEnabled(false); // 设置AcitonBar的操作模型 ab.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS); // 将Activity的头部去掉 ab.setDisplayShowTitleEnabled(false); ab.addTab(ab.newTab().setText("Tab-A").setTabListener(new TabLister(new FragmentA()))); ab.addTab(ab.newTab().setText("Tab-B").setTabListener(new TabLister(new FragmentB()))); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.activity_main, menu); return true; } private class TabLister implements TabListener{ private Fragment fragment; TabLister(Fragment fragment){ this.fragment = fragment; } @Override public void onTabReselected(Tab tab, FragmentTransaction ft) { //ft.add(R.id.context, fragment); } @Override public void onTabSelected(Tab tab, FragmentTransaction ft) { ft.add(R.id.context, fragment); } @Override public void onTabUnselected(Tab tab, FragmentTransaction ft) { ft.remove(fragment); } } private class FragmentA extends Fragment{ @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { // TODO Auto-generated method stub return inflater.inflate(R.layout.activity_main_fragment_a, container, false); } } private class FragmentB extends Fragment{ @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { // TODO Auto-generated method stub return inflater.inflate(R.layout.activity_main_fragment_b, container, false); } } }
activity_main.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity" > <FrameLayout android:id="@+id/context" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_alignParentTop="true"> </FrameLayout> </RelativeLayout>
activity_main_fragment_a.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" > <FrameLayout android:id="@+id/fragmentA" android:layout_width="wrap_content" android:layout_height="wrap_content" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="1111111" /> </FrameLayout> </LinearLayout>
activity_main_fragment_b.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" > <FrameLayout android:id="@+id/fragmentA" android:layout_width="wrap_content" android:layout_height="wrap_content" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="2222222" /> </FrameLayout> </LinearLayout>