XML布局
<?xml version="1.0" encoding="utf-8"?> <LinearLayout 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" android:orientation="vertical"> <FrameLayout android:id="@+id/main_fragment_container" android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="1"> </FrameLayout> <RadioGroup android:id="@+id/main_tab_bar" android:layout_width="match_parent" android:layout_height="47dp" android:layout_gravity="bottom" android:gravity="center" android:background="#E6020212" android:orientation="horizontal"> <RadioButton android:id="@+id/main_homepage" android:layout_width="0dp" android:layout_height="45dp" android:layout_weight="1" android:layout_marginLeft="28dp" android:background="@drawable/main_select_imageview_home" android:button="@null" android:checked="true" android:gravity="center" /> <RadioButton android:id="@+id/main_study" android:layout_width="0dp" android:layout_height="45dp" android:layout_weight="1" android:layout_marginLeft="10dp" android:background="@drawable/main_select_imageview_study" android:button="@null" android:gravity="center" /> <RadioButton android:id="@+id/main_message" android:layout_width="0dp" android:layout_height="45dp" android:layout_weight="1" android:layout_marginLeft="10dp" android:background="@drawable/main_select_imageview_message" android:button="@null" android:gravity="center" /> <RadioButton android:id="@+id/main_mine" android:layout_width="0dp" android:layout_height="45dp" android:layout_weight="1" android:layout_marginLeft="10dp" android:background="@drawable/main_select_imageview_mime" android:button="@null" android:gravity="center" /> </RadioGroup> </LinearLayout>button背景选择器
<?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:drawable="@mipmap/keche_icon_2x1" android:state_checked="true"/> <item android:drawable="@mipmap/keche_icon_2x"/> </selector>MainActivity
public class MainActivity extends FragmentActivity implements RadioGroup.OnCheckedChangeListener { private Fragment[] fragments; private RadioGroup radiogroup; private int index; private int showWhich; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // requestWindowFeature(Window.FEATURE_NO_TITLE); setContentView(R.layout.activity_main); //设置全屏 // getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, // WindowManager.LayoutParams.FLAG_FULLSCREEN); // if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { // setTranslucentStatus(true); // } // SystemBarTintManager tintManager = new SystemBarTintManager(this); // // 激活状态栏设置 // tintManager.setStatusBarTintEnabled(true); // tintManager.setStatusBarTintResource(R.color.toumingstatusbar_bg); FragmentManager manager = getSupportFragmentManager(); fragments = new Fragment[4]; FragmentTransaction tx = manager.beginTransaction(); if (savedInstanceState != null) { //代表Activity重新创建,内部的Fragmetn会自动添加 int len = fragments.length; for (int i = 0; i < len; i++) { fragments[i] = manager.findFragmentByTag("f" + i); tx.hide(fragments[i]); } } else { fragments[0] = new NewHomeFragment(); fragments[1] = new StudyFragment(); fragments[2] = new InformationFragment(); fragments[3] = new MineFragment(); int length = fragments.length; for (int i = 0; i < length; i++) { //添加Fragment,并且制定tag,利用tag在activity 重新创建的时候重新查找 tx.add(R.id.main_fragment_container, fragments[i], "f" + i); tx.hide(fragments[i]); } } tx.show(fragments[showWhich]); tx.commit(); radiogroup = (RadioGroup) findViewById(R.id.main_tab_bar); radiogroup.setOnCheckedChangeListener(this); } @TargetApi(19) private void setTranslucentStatus(boolean on) { Window win = getWindow(); WindowManager.LayoutParams winParams = win.getAttributes(); final int bits = WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS; if (on) { winParams.flags |= bits; } else { winParams.flags &= ~bits; } win.setAttributes(winParams); }@Override // protected void onNewIntent(Intent intent) { // if (intent != null) { // String flag = intent.getStringExtra("flag"); // if (flag != null && !flag.equals("")) { // showWhich = Integer.parseInt(flag); // FragmentManager fragmentManager = getSupportFragmentManager(); // // FragmentTransaction tx = fragmentManager.beginTransaction(); // for (int i = 0; i < fragments.length; i++) { // if (showWhich == i) { // tx.show(fragments[i]); // ((RadioButton) radiogroup.getChildAt(showWhich)).setChecked(true); // } else { // tx.hide(fragments[i]); // } // } // tx.commitAllowingStateLoss(); // } // } // super.onNewIntent(intent); // }@Override public void onCheckedChanged(RadioGroup group, int checkedId) { index = 0; switch (checkedId) { case R.id.main_homepage: index = 0; break; case R.id.main_study: index = 1; break; case R.id.main_message: index = 2; break; case R.id.main_mine: index = 3; break; } int length = fragments.length; FragmentManager fragmentManager = getSupportFragmentManager(); FragmentTransaction tx = fragmentManager.beginTransaction(); for (int i = 0; i < length; i++) { if (index == i) { if (index == 1) { if (App.jsessionid == null) {//未登录跳转登录页面 Intent intent = new Intent(MainActivity.this, LogActivity.class); startActivity(intent); ((RadioButton) radiogroup.getChildAt(0)).setChecked(true); tx.show(fragments[0]); } else { tx.show(fragments[i]); } } else { tx.show(fragments[i]); } } else { tx.hide(fragments[i]); } } tx.commitAllowingStateLoss(); }@Override // protected void onActivityResult(int requestCode, int resultCode, Intent data) { // FragmentManager fragmentManager = getSupportFragmentManager(); // super.onActivityResult(requestCode, resultCode, data); // Fragment f = fragmentManager.findFragmentByTag("f3"); // /*在碎片中调用重写的onActivityResult方法*/ // f.onActivityResult(requestCode, resultCode, data); // }
@Override // public boolean onKeyDown(int keyCode, KeyEvent event) { // boolean b = false; // FragmentManager fragmentManager = getSupportFragmentManager(); // if (index == 0) { // NewHomeFragment f = (NewHomeFragment) fragmentManager.findFragmentByTag("f" + 0); // b = f.onKeyDown(keyCode, event); // } else if (index == 1) { // StudyFragment f = (StudyFragment) fragmentManager.findFragmentByTag("f" + 1); // b = f.onKeyDown(keyCode, event); // } else if (index == 2) { // InformationFragment f = (InformationFragment) fragmentManager.findFragmentByTag("f" + 2); // b = f.onKeyDown(keyCode, event); // } else { // MineFragment f = (MineFragment) fragmentManager.findFragmentByTag("f" + 3); // b = f.onKeyDown(keyCode, event); // } // /*在碎片中调用重写的onActivityResult方法*/ // // if (b) { // return b; // } else { // return super.onKeyDown(keyCode, event); // } // }}