
至于顶部导航的具体要用到的图片和布局大家自己调整。
由于前面已经介绍了底部菜单栏了,所以一些重复性的代码就不贴上来了,最后我也会把下载地址贴上大家有兴趣自行下载。
首先看一些顶部导航栏的布局文件:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="fill_parent"android:layout_height="fill_parent"android:orientation="vertical" ><include layout="@layout/head" /><LinearLayoutandroid:layout_width="fill_parent"android:layout_height="wrap_content"><RadioGroup android:id="@+id/add_tab_group" android:layout_width="fill_parent" android:layout_height="wrap_content" android:gravity="center" android:paddingTop="6dp" android:paddingBottom="6dp" android:background="@drawable/big_button_up" android:orientation="horizontal"><RadioButtonandroid:id="@+id/main_tab_addExam"style="@style/MMTabButton1"android:layout_weight="1.0"android:checked="true"android:text="添加考试" /><RadioButtonandroid:id="@+id/main_tab_myExam"style="@style/MMTabButton1"android:layout_weight="1.0"android:text="我的考试" /><RadioButtonandroid:id="@+id/main_tab_message"style="@style/MMTabButton1"android:layout_weight="1.0"android:text="我的通知" /><RadioButtonandroid:id="@+id/main_tab_testing"style="@style/MMTabButton1"android:layout_weight="1.0"android:text="测试" /> <RadioButtonandroid:id="@+id/main_tab_settings"style="@style/MMTabButton1"android:layout_weight="1.0"android:text="设置" /></RadioGroup> </LinearLayout> <LinearLayout android:id="@+id/container" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_weight="1" ></LinearLayout> </LinearLayout>具体宽度样式大家可以自己调节,然后看一下核心类:
import android.app.ActivityGroup; import android.app.AlertDialog; import android.app.LocalActivityManager; import android.content.Context; import android.content.DialogInterface; import android.content.Intent; import android.os.Bundle; import android.view.KeyEvent; import android.view.View; import android.view.animation.Animation; import android.view.animation.AnimationUtils; import android.widget.Button; import android.widget.LinearLayout; import android.widget.RadioGroup; import android.widget.TextView; import android.widget.RadioGroup.OnCheckedChangeListener;public class AddExamActivity extends ActivityGroup { protected Button btn_leftTop, btn_rightTop;protected TextView tv_head;private static LocalActivityManager manager;private RadioGroup radioGroup;private static LinearLayout container;public static Context context;@Overrideprotected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); setContentView(R.layout.addexam); context=this; initHead();manager=getLocalActivityManager(); container= (LinearLayout)findViewById(R.id.container); radioGroup=(RadioGroup) this.findViewById(R.id.add_tab_group);container.removeAllViews(); container.addView(manager.startActivity( "PAGE_0", new Intent(context, MyExamActivity.class).addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)) .getDecorView());radioGroup.setOnCheckedChangeListener(new OnCheckedChangeListener() {@Overridepublic void onCheckedChanged(RadioGroup group, int checkedId) { // TODO Auto-generated method stub switch (checkedId) { case R.id.main_tab_addExam://添加考试container.removeAllViews();container.addView(manager.startActivity("PAGE_0",new Intent(context, MyExamActivity.class).addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)).getDecorView());break; case R.id.main_tab_myExam://我的考试container.removeAllViews();container.addView(manager.startActivity("PAGE_1",new Intent(context, MyMessageActivity.class).addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)).getDecorView());break; case R.id.main_tab_message://我的通知container.removeAllViews();container.addView(manager.startActivity("PAGE_2",new Intent(context, SettingActivity.class).addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)).getDecorView());break; case R.id.main_tab_testing://测试container.removeAllViews();container.addView(manager.startActivity("PAGE_3",new Intent(context, TestingActivity.class).addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)).getDecorView());break; case R.id.main_tab_settings://设置container.removeAllViews();container.addView(manager.startActivity("PAGE_4",new Intent(context, MyExamActivity.class).addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)).getDecorView());break; default://tabHost.setCurrentTabByTag("我的考试");break; }} });}public static void changeTo(){ Animation slideLeftIn = AnimationUtils.loadAnimation(context, R.anim.slide_bottom_in_no_alpha);container.removeAllViews(); container.addView(manager.startActivity( "PAGE_4", new Intent(context, MyExamActivity.class).addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)) .getDecorView()); container.startAnimation(slideLeftIn);}protected void initHead() { btn_leftTop = (Button) findViewById(R.id.btn_leftTop); btn_rightTop = (Button) findViewById(R.id.btn_rightTop); tv_head = (TextView) findViewById(R.id.tv_head);btn_leftTop.setVisibility(View.INVISIBLE); tv_head.setText("添加考试");}@Overridepublic boolean onKeyDown(int keyCode, KeyEvent event) { // TODO Auto-generated method stubif (keyCode == KeyEvent.KEYCODE_BACK) { AlertDialog.Builder builder = new AlertDialog.Builder(getParent());builder.setMessage("你确定退出吗?").setCancelable(false).setPositiveButton("确定",new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int id) {finish();System.exit(0); }}).setNegativeButton("返回",new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int id) {dialog.cancel(); }});AlertDialog alert = builder.create();alert.show();return true; }return super.onKeyDown(keyCode, event);} } 这里继承了ActivityGroup,没有使用过的朋友从百度搜索下就明白了。