首先我们先来看一下布局,布局也非常简单,下面贴上代码
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/activity_main" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" tools:context="com.liu.administratorexample.fragment.MainActivity"> <FrameLayout android:id="@+id/fram" android:layout_width="match_parent" android:layout_height="450dp" /> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="bottom" android:orientation="horizontal"> <Button android:id="@+id/m_bt" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:text="按钮1" /> <Button android:layout_weight="1" android:id="@+id/m_bt1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="按钮2" /> </LinearLayout> </LinearLayout>下面我们看一下Activity核心代码
import android.os.Bundle; import android.support.v4.app.FragmentManager; import android.support.v4.app.FragmentTransaction; import android.support.v7.app.AppCompatActivity; import android.view.View; import android.widget.Button; import android.widget.FrameLayout; import android.widget.Toast; import com.liu.administratorexample.fragment.fragment.OneFragment; import com.liu.administratorexample.fragment.fragment.TwoFragment; public class MainActivity extends AppCompatActivity implements View.OnClickListener { private FrameLayout fram; private Button m_bt; private Button m_bt1; private OneFragment oneFragment; private TwoFragment twoFragment; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); initView(); initDate(); } /* * 初始化一个fragment * */ private void initDate() { oneFragment = new OneFragment(); // 获取一个Fragment管理器 FragmentManager manager = getSupportFragmentManager(); // 开始一个事务 FragmentTransaction transaction = manager.beginTransaction(); // 加入一个事务 transaction.add(R.id.fram, oneFragment); // 提交 transaction.commit(); } private void initView() { fram = (FrameLayout) findViewById(R.id.fram); m_bt = (Button) findViewById(R.id.m_bt); m_bt1 = (Button) findViewById(R.id.m_bt1); m_bt.setOnClickListener(this); m_bt1.setOnClickListener(this); } @Override public void onClick(View v) { FragmentManager manager = getSupportFragmentManager(); FragmentTransaction transaction = manager.beginTransaction(); yincang(transaction); switch (v.getId()) { case R.id.m_bt: Toast.makeText(this,"hdqjhfdjhnj",Toast.LENGTH_SHORT).show(); if (oneFragment == null) {//如果第一个Fragment等于空时,那么就创建第一个Fragment对象 oneFragment = new OneFragment(); transaction.add(R.id.fram,oneFragment); }else{ transaction.show(oneFragment); } break; case R.id.m_bt1: Toast.makeText(this,"hdqjhfdjhnj",Toast.LENGTH_SHORT).show(); if (twoFragment == null) { twoFragment = new TwoFragment(); transaction.add(R.id.fram,twoFragment); }else { transaction.show(twoFragment); } break; } transaction.commit();//提交事务 } private void yincang(FragmentTransaction transaction) { if(oneFragment!=null){ transaction.hide(oneFragment); } if(twoFragment!=null) { transaction.hide(twoFragment); } } }