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/dl_chehua"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context="com.example.gengqiang.MainActivity">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<FrameLayout
android:id="@+id/viewpager"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="9" />
<RadioGroup
android:id="@+id/group"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:gravity="center"
android:orientation="horizontal">
<RadioButton
android:id="@+id/but1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:button="@null"
android:gravity="center"
android:text="首页" />
<RadioButton
android:id="@+id/but2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:button="@null"
android:gravity="center"
android:text="头条" />
<RadioButton
android:id="@+id/but3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:button="@null"
android:gravity="center"
android:text="分享圈" />
<RadioButton
android:id="@+id/but4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:button="@null"
android:gravity="center"
android:text="个人社区" />
</RadioGroup>
</LinearLayout>
<TextView
android:id="@+id/chehua"
android:layout_width="300dp"
android:layout_height="match_parent"
android:layout_gravity="start"
android:background="#ff00"
android:text="欢迎来到侧滑"
android:textSize="20sp" />
</android.support.v4.widget.DrawerLayout>
逻辑代码:
package com.example.gengqiang;
import android.content.DialogInterface;
import android.content.Intent;
import android.os.Bundle;
import android.provider.Settings;
import android.support.annotation.IdRes;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentTransaction;
import android.support.v4.widget.DrawerLayout;
import android.support.v7.app.AlertDialog;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.FrameLayout;
import android.widget.RadioGroup;
import android.widget.TextView;
import android.widget.Toast;
import com.example.gengqiang.Frgament.BlankFragment01;
import com.example.gengqiang.Frgament.BlankFragment02;
import com.example.gengqiang.Frgament.BlankFragment03;
import com.example.gengqiang.Frgament.BlankFragment04;
import com.example.gengqiang.Tools.NetWorkInfo;
import java.util.ArrayList;
public class MainActivity extends AppCompatActivity {
//定义需要的属性
private ArrayList<Fragment> list;
private DrawerLayout drawerLayout;
private RadioGroup group;
private TextView chehua;
private BlankFragment01 blankFragment01;
private BlankFragment02 blankFragment02;
private BlankFragment03 blankFragment03;
private BlankFragment04 blankFragment04;
private FragmentManager fragmentManager;
private FrameLayout frameLayout;
private AlertDialog show;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//网络判断,并跳转到系统设置
int netWorkInfo = NetWorkInfo.getNetWorkInfo(MainActivity.this);
if (netWorkInfo == -1) {
AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
builder.setTitle("网络异常!");
builder.setMessage("前往系统设置,设置网络?");
builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
Intent intent = new Intent(Settings.ACTION_SETTINGS);
startActivity(intent);
show.dismiss();
}
});
builder.setNegativeButton("取消", null);
show = builder.show();
} else {
Toast.makeText(this, "网络正常", Toast.LENGTH_SHORT).show();
}
//将所有Fragment实例化,并添加到集合
fragmentManager = getSupportFragmentManager();
list = new ArrayList<>();
blankFragment01 = new BlankFragment01();
blankFragment02 = new BlankFragment02();
blankFragment03 = new BlankFragment03();
blankFragment04 = new BlankFragment04();
list.add(blankFragment01);
list.add(blankFragment02);
list.add(blankFragment03);
list.add(blankFragment04);
//将所有的Fragment添加到占位布局,并设置默认显示
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
fragmentTransaction
.add(R.id.viewpager, list.get(0))
.add(R.id.viewpager, list.get(1))
.add(R.id.viewpager, list.get(2))
.add(R.id.viewpager, list.get(3))
.show(list.get(0))
.hide(list.get(1))
.hide(list.get(2))
.hide(list.get(3))
.commit();
//初始化布局中的控件
drawerLayout = (DrawerLayout) findViewById(R.id.dl_chehua);
group = (RadioGroup) findViewById(R.id.group);
chehua = (TextView) findViewById(R.id.chehua);
frameLayout = (FrameLayout) findViewById(R.id.viewpager);
//侧滑点击关闭
chehua.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
drawerLayout.closeDrawer(chehua);
group.check(R.id.but4);
}
});
//按钮点击监听
group.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup radioGroup, @IdRes int i) {
switch (i) {
case R.id.but1: {
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
fragmentTransaction
.show(list.get(0))
.hide(list.get(1))
.hide(list.get(2))
.hide(list.get(3))
.commit();
break;
}
case R.id.but2: {
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
fragmentTransaction
.show(list.get(1))
.hide(list.get(0))
.hide(list.get(2))
.hide(list.get(3))
.commit();
break;
}
case R.id.but3: {
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
fragmentTransaction
.show(list.get(2))
.hide(list.get(1))
.hide(list.get(0))
.hide(list.get(3))
.commit();
break;
}
case R.id.but4: {
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
fragmentTransaction
.show(list.get(3))
.hide(list.get(1))
.hide(list.get(2))
.hide(list.get(0))
.commit();
break;
}
}
}
});
}
}