Fragment的hid和show

来源:互联网 发布:擎洲广达云计价软件 编辑:程序博客网 时间:2024/05/19 20:41
import android.os.Bundle;import android.support.annotation.IdRes;import android.support.v4.app.FragmentActivity;import android.support.v4.app.FragmentManager;import android.support.v4.app.FragmentTransaction;import android.widget.RadioGroup;import android.widget.Toast;import com.example.day02_dongtaifragment.Fragment.Frag1;import com.example.day02_dongtaifragment.Fragment.Frag2;import com.example.day02_dongtaifragment.Fragment.Frag3;import com.example.day02_dongtaifragment.Util.NetworkUtil;public class MainActivity extends FragmentActivity {    private FragmentManager fm;    private RadioGroup rg;    private Frag1 f1;    private Frag2 f2;    private Frag3 f3;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        //判断网络        int type = NetworkUtil.getType(MainActivity.this);        if (type == -1) {            Toast.makeText(this, "无网络", Toast.LENGTH_SHORT).show();        }        if (type==1){            Toast.makeText(this, "正在使用无线网络", Toast.LENGTH_SHORT).show();        }        if (type == 0) {            Toast.makeText(this, "正在使用蜂窝网络,慎用流量", Toast.LENGTH_SHORT).show();        }        //获取控件        rg = (RadioGroup) findViewById(R.id.rg);        //获取控制        fm = getSupportFragmentManager();        //开启事务        FragmentTransaction ft = fm.beginTransaction();        //获取fragment        f1 = new Frag1();        //添加一个默认的页面        ft.add(R.id.fl, f1).commit();        //RadioGroupd监听事件        rg.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {            @Override            public void onCheckedChanged(RadioGroup radioGroup, @IdRes int i) {                //调用全部隐藏的方法                hidefragment();                //开启事务                FragmentTransaction ft2 = fm.beginTransaction();                switch (i) {                    case R.id.rb1:                        ft2.show(f1).commit();                        break;                    case R.id.rb2:                        //如果2为空就添加,否则就展示                        if (f2 == null) {                            f2 = new Frag2();                            ft2.add(R.id.fl, f2).commit();                        } else {                            ft2.show(f2).commit();                        }                        break;                    case R.id.rb3:                        if (f3 == null) {                            f3 = new Frag3();                            ft2.add(R.id.fl, f3).commit();                        } else {                            ft2.show(f3).commit();                        }                        break;                }            }        });    }    //封装一个全部隐藏的方法    public void hidefragment() {        //开启事务        FragmentTransaction ft3 = fm.beginTransaction();        //如果fragment1不为空或者添加过就直接隐藏        if (f1 != null && f1.isAdded()) {            ft3.hide(f1);        }        if (f2 != null && f2.isAdded()) {            ft3.hide(f2);        }        if (f3 != null && f3.isAdded()) {            ft3.hide(f3);        }        ft3.commit();    }    ;}
原创粉丝点击