Frafment 的show和hide

来源:互联网 发布:microsoft办公软件 编辑:程序博客网 时间:2024/05/16 10:28
package com.example.a09jieyuekaolianxi;


import android.os.Bundle;
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.AppCompatActivity;
import android.view.View;
import android.widget.FrameLayout;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.RadioGroup;
import android.widget.Toast;


import com.example.a09jieyuekaolianxi.Fragment.BlankFragment01;
import com.example.a09jieyuekaolianxi.Fragment.BlankFragment02;
import com.example.a09jieyuekaolianxi.Fragment.BlankFragment03;
import com.example.a09jieyuekaolianxi.Fragment.BlankFragment04;
import com.example.a09jieyuekaolianxi.Tools.JudgeNetWorkInfo;


import java.util.ArrayList;


/**
 * 和MainActivity逻辑一样
 * 简单处理,底部标签切换;
 * 使用某个Fragment的时候再new出来;
 */
public class MainActivity2 extends AppCompatActivity {


    private DrawerLayout drawerLayout;
    private FrameLayout frameLayout;
    private RadioGroup group;
    private LinearLayout linearLayout;
    private ImageView imageView;
    private FragmentManager fragmentManager;
    private BlankFragment01 blankFragment01;
    private BlankFragment02 blankFragment02;
    private BlankFragment03 blankFragment03;
    private BlankFragment04 blankFragment04;
    private ArrayList<Fragment> list;




    @Override
    protected void onResume() {
        super.onResume();
        //判断网络状态
        int netWorkInfo = JudgeNetWorkInfo.getNetWorkInfo(MainActivity2.this);
        if (netWorkInfo == -1) {
            Toast.makeText(this, "当前网络异常,请做联网操作!", Toast.LENGTH_SHORT).show();
        } else if (netWorkInfo == 1) {
            Toast.makeText(this, "当前网络正常,正在使用WiFi网络", Toast.LENGTH_SHORT).show();
        } else if (netWorkInfo == 0) {
            Toast.makeText(this, "当前网络正常,正在使用运营商网络(3G/4G),请注意流量的使用", Toast.LENGTH_SHORT).show();
        }
    }


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        fragmentManager = getSupportFragmentManager();
        //初始化组件
        drawerLayout = (DrawerLayout) findViewById(R.id.dl_chehua);
        frameLayout = (FrameLayout) findViewById(R.id.fl_zhanwei);
        group = (RadioGroup) findViewById(R.id.group);
        //侧滑布局
        linearLayout = (LinearLayout) findViewById(R.id.ll_chehua);
        //侧滑布局中的图片
        imageView = (ImageView) findViewById(R.id.jqr);
        //封装数据
        list = new ArrayList<>();
        //点击机器人关闭侧滑
        imageView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                drawerLayout.closeDrawer(linearLayout);
            }
        });
        //将所有Fragment添加到占位布局
        FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
        blankFragment01 = new BlankFragment01();
        fragmentTransaction
                .add(R.id.fl_zhanwei, blankFragment01)
                .commit();


        //RadioGroupd点击监听
        group.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(RadioGroup radioGroup, @IdRes int i) {
                hideFragments();//隐藏所有Fragment;
                FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
                switch (i) {
                    case R.id.but1:
                        fragmentTransaction.show(blankFragment01).commit();
                        break;
                    case R.id.but2:
                        if (blankFragment02 == null) {
                            blankFragment02 = new BlankFragment02();
                            fragmentTransaction.add(R.id.fl_zhanwei, blankFragment02).commit();
                        } else {
                            fragmentTransaction.show(blankFragment02).commit();
                        }


                        break;
                    case R.id.but3:
                        if (blankFragment03 == null) {
                            blankFragment03 = new BlankFragment03();
                            fragmentTransaction.add(R.id.fl_zhanwei, blankFragment03).commit();
                        } else {
                            fragmentTransaction.show(blankFragment03).commit();
                        }
                        break;
                    case R.id.but4:
                        if (blankFragment04 == null) {
                            blankFragment04 = new BlankFragment04();
                            fragmentTransaction.add(R.id.fl_zhanwei, blankFragment04).commit();
                        } else {
                            fragmentTransaction.show(blankFragment04).commit();
                        }
                        break;


                }
            }
        });
    }




    public void hideFragments() {
        FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
        if (blankFragment01 != null && blankFragment01.isAdded()) {
            fragmentTransaction.hide(blankFragment01);
        }
        if (blankFragment02 != null && blankFragment02.isAdded()) {
            fragmentTransaction.hide(blankFragment02);
        }
        if (blankFragment03 != null && blankFragment03.isAdded()) {
            fragmentTransaction.hide(blankFragment03);
        }
        if (blankFragment04 != null && blankFragment04.isAdded()) {
            fragmentTransaction.hide(blankFragment04);
        }
        fragmentTransaction.commit();


    }
}