Android底部Fragment切换

来源:互联网 发布:小说编写软件 编辑:程序博客网 时间:2024/06/05 04:21

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;                    }                }            }        });    }}


 
阅读全文
0 0
原创粉丝点击