android点击按钮切换fragment布局 android实现点击按钮切换不同的fragment布局
筱个椰子皮 人气:0先上效果图:
如图所示,实现点击下面的按钮切换不同的fragment布局;
不说了,先上主MainActivity代码:
MainActivity.java:
package com.example.xh.twostylefragment; import android.content.Intent; import android.os.Bundle; import android.support.v4.app.FragmentTransaction; import android.support.v7.app.AppCompatActivity; import android.view.View; import android.widget.Button; public class MainActivity extends AppCompatActivity implements View.OnClickListener{ //定义5个fragment private MyFragment f1; private MyFragment2 f2; private MyFragment3 f3; private MyFragment4 f4; private MyFragment5 f5; //定义底部5个按钮 private Button foot1; private Button foot2; private Button foot3; private Button foot4; private Button foot5; int i = 0; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); foot1 = (Button) findViewById(R.id.btn1);//注册按钮 foot2 = (Button) findViewById(R.id.btn2); foot3 = (Button) findViewById(R.id.btn3); foot4 = (Button) findViewById(R.id.btn4); foot5 = (Button) findViewById(R.id.btn5); foot1.setOnClickListener(this);//对按钮设置监听 foot2.setOnClickListener(this); foot3.setOnClickListener(this); foot4.setOnClickListener(this); foot5.setOnClickListener(this); //第一次初始化首页默认显示第一个fragment initFragment1(); } //显示第一个fragment private void initFragment1(){ //开启事务,fragment的控制是由事务来实现的 FragmentTransaction transaction = getSupportFragmentManager().beginTransaction(); //第一种方式(add),初始化fragment并添加到事务中,如果为null就new一个 if(f1 == null){ f1 = new MyFragment(); transaction.add(R.id.main_frame_layout, f1); } //隐藏所有fragment hideFragment(transaction); //显示需要显示的fragment transaction.show(f1); //第二种方式(replace),初始化fragment // if(f1 == null){ // f1 = new MyFragment("首页"); // } // transaction.replace(R.id.main_frame_layout, f1); //提交事务 transaction.commit(); } //显示第二个fragment private void initFragment2(){ FragmentTransaction transaction = getSupportFragmentManager().beginTransaction(); if(f2 == null){ f2 = new MyFragment2(); transaction.add(R.id.main_frame_layout,f2); } hideFragment(transaction); transaction.show(f2); // if(f2 == null) { // f2 = new MyFragment("分类"); // } // transaction.replace(R.id.main_frame_layout, f2); transaction.commit(); } //显示第三个fragment private void initFragment3(){ FragmentTransaction transaction = getSupportFragmentManager().beginTransaction(); if(f3 == null){ f3 = new MyFragment3(); transaction.add(R.id.main_frame_layout,f3); } hideFragment(transaction); transaction.show(f3); // if(f3 == null) { // f3 = new MyFragment("发现"); // } // transaction.replace(R.id.main_frame_layout, f3); transaction.commit(); } private void initFragment4(){ FragmentTransaction transaction = getSupportFragmentManager().beginTransaction(); if(f4 == null){ f4 = new MyFragment4(); transaction.add(R.id.main_frame_layout,f4); } hideFragment(transaction); transaction.show(f4); // if(f4 == null) { // f4 = new MyFragment("购物车"); // } // transaction.replace(R.id.main_frame_layout, f4); transaction.commit(); } private void initFragment5(){ FragmentTransaction transaction = getSupportFragmentManager().beginTransaction(); if(f5 == null){ f5 = new MyFragment5(); transaction.add(R.id.main_frame_layout,f5); } hideFragment(transaction); transaction.show(f5); // if(f5 == null) { // f5 = new MyFragment("我的); // } // transaction.replace(R.id.main_frame_layout, f5); transaction.commit(); } //隐藏所有的fragment private void hideFragment(FragmentTransaction transaction){ if(f1 != null){ transaction.hide(f1); } if(f2 != null){ transaction.hide(f2); } if(f3 != null){ transaction.hide(f3); } if(f4 != null){ transaction.hide(f4); } if(f5 != null){ transaction.hide(f5); } } @Override public void onClick(View v) {//点击哪个按钮就显示哪个fragment; if(v == foot1){ initFragment1(); }else if(v == foot2){ initFragment2(); }else if(v == foot3){ initFragment3(); }else if(v == foot4){ initFragment4(); }else if(v == foot5){ initFragment5(); } } }
大家需要创建5个fragment,还有对应的xml文件,这里我给大家展示我创建的MyFragment4.java:
package com.example.xh.twostylefragment; import android.os.Bundle; import android.support.v4.app.Fragment; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; /** * Created by Administrator on 2016/7/8. */ public class MyFragment4 extends Fragment { @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = LayoutInflater.from(getActivity()).inflate(R.layout.shoppingcar,container,false);//用view保存shoppingcar.xml布局,大家可以 return view; //自己创建一个xml. } }
差不多就是这样的了,有问题大家可以提出来。
加载全部内容