方法一
replace
xml
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<RadioGroup
android:id="@+id/main_rel_navigate"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:orientation="horizontal">
<RadioButton
android:id="@+id/main_rb_one"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:background="@drawable/rb_selector"
android:button="@null"
android:checked="true"
android:gravity="center"
android:padding="3dp"
android:text="one" />
<RadioButton
android:id="@+id/main_rb_two"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:background="@drawable/rb_selector"
android:button="@null"
android:gravity="center"
android:padding="3dp"
android:text="two" />
<RadioButton
android:id="@+id/main_rb_three"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:background="@drawable/rb_selector"
android:button="@null"
android:gravity="center"
android:padding="3dp"
android:text="three" />
<RadioButton
android:id="@+id/main_rb_four"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:background="@drawable/rb_selector"
android:button="@null"
android:gravity="center"
android:padding="3dp"
android:text="four" />
</RadioGroup>
<FrameLayout
android:id="@+id/main_content"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_above="@id/main_rel_navigate"></FrameLayout>
</RelativeLayout>
Java
package com.bawei.text04;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.widget.DrawerLayout;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.ImageView;
import android.widget.RadioGroup;
import android.widget.RelativeLayout;
import com.bawei.text04.fragments.FourFragment;
import com.bawei.text04.fragments.OneFragment;
import com.bawei.text04.fragments.ThreeFragment;
import com.bawei.text04.fragments.TwoFragment;
/*DrawerLayout和Fragment
* */
public class MainActivity extends AppCompatActivity {
private RadioGroup rg;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//初始化
init();
}
private void init() {
//查找控件
rg = findViewById(R.id.main_rel_navigate);//RadioGroup底部单选
img = findViewById(R.id.main_menu_img);//侧滑菜单里的图片
//添加fragemnt
init2();
}
private void init2() {
rg.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup radioGroup, int i) {
if (i == R.id.main_rb_one) {
addFragment(new OneFragment());
} else if (i == R.id.main_rb_two) {
addFragment(new TwoFragment());
} else if (i == R.id.main_rb_three) {
addFragment(new ThreeFragment());
} else if (i == R.id.main_rb_four) {
addFragment(new FourFragment());
}
}
});
}
private void addFragment(Fragment fragment) {
getSupportFragmentManager().beginTransaction().replace(R.id.main_content,fragment).commit();
}
}
方法二
xml
<?xml version="1.0" encoding="utf-8"?>
<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/main_mydrawer"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.bawei.text02.MainActivity">
<FrameLayout
android:id="@+id/main_frag"
android:layout_width="match_parent"
android:layout_height="match_parent"></FrameLayout>
<LinearLayout
android:id="@+id/main_lin"
android:layout_width="320dp"
android:background="#fcad0d"
android:layout_height="match_parent"
android:layout_gravity="start"
android:orientation="vertical">
<Button
android:id="@+id/main_btn1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="新闻" />
<Button
android:id="@+id/main_btn2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="关注" />
<Button
android:id="@+id/main_btn3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="动态" />
<Button
android:id="@+id/main_btn4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="设置" />
</LinearLayout>
</android.support.v4.widget.DrawerLayout>
Java
package com.bawei.text02;
import android.os.Bundle;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentTransaction;
import android.support.v4.widget.DrawerLayout;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import android.widget.LinearLayout;
import com.bawei.text02.fragment.FourFragment;
import com.bawei.text02.fragment.OneFragment;
import com.bawei.text02.fragment.ThreeFragment;
import com.bawei.text02.fragment.TwoFragment;
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
private DrawerLayout drawer;
private Button btn1;
private Button btn2;
private Button btn3;
private Button btn4;
private FragmentManager fragmentManager;
private OneFragment oneFragment;
private TwoFragment twoFragment;
private ThreeFragment threeFragment;
private FourFragment fourFragment;
private LinearLayout lin;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//查找控件
drawer = findViewById(R.id.main_mydrawer);
btn1 = findViewById(R.id.main_btn1);
btn2 = findViewById(R.id.main_btn2);
btn3 = findViewById(R.id.main_btn3);
btn4 = findViewById(R.id.main_btn4);
lin = findViewById(R.id.main_lin);
btn1.setOnClickListener(this);
btn2.setOnClickListener(this);
btn3.setOnClickListener(this);
btn4.setOnClickListener(this);
fragmentManager = getSupportFragmentManager();
}
@Override
public void onClick(View view) {
FragmentTransaction transaction = fragmentManager.beginTransaction();
hideFragments(transaction);
switch (view.getId()) {
case R.id.main_btn1:
if (oneFragment == null) {
oneFragment = new OneFragment();
transaction.add(R.id.main_frag, oneFragment);
} else {
transaction.show(oneFragment);
drawer.closeDrawer(lin);
}
break;
case R.id.main_btn2:
if (twoFragment == null) {
twoFragment = new TwoFragment();
transaction.add(R.id.main_frag, twoFragment);
} else {
transaction.show(twoFragment);
drawer.closeDrawer(lin);
}
break;
case R.id.main_btn3:
if (threeFragment == null) {
threeFragment = new ThreeFragment();
transaction.add(R.id.main_frag, threeFragment);
} else {
transaction.show(threeFragment);
drawer.closeDrawer(lin);
}
break;
case R.id.main_btn4:
if (fourFragment == null) {
fourFragment = new FourFragment();
transaction.add(R.id.main_frag, fourFragment);
} else {
transaction.show(fourFragment);
drawer.closeDrawer(lin);
}
break;
}
transaction.commit();
}
private void hideFragments(FragmentTransaction transaction) {
if (oneFragment != null) {
transaction.hide(oneFragment);
}
if (twoFragment != null) {
transaction.hide(twoFragment);
}
if (threeFragment != null) {
transaction.hide(threeFragment);
}
if (fourFragment != null) {
transaction.hide(fourFragment);
}
}
}