·1.MainActivity采用线性布局
2.在app--->res--->layout,右击new--->xml---->layout xml FILE
<1>新建XML文件
采用线性布局
<?xml version="1.0" encoding="utf-8"?> <LinearLayout 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:layout_width="match_parent"android:background="#fffff0"android:layout_height="match_parent"> <Button android:id="@+id/button2"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_weight="1"android:text="隐藏" /> </LinearLayout>
3.在app-->java--->com.lucky.test07目录下新建MyFragment类
View.inflate()是加载一个布局文件
View view=inflater.inflate(R.layout.layout1,container,false);
packagecom.lucky.test07; importandroid.os.Bundle; importandroid.support.annotation.NonNull; importandroid.support.annotation.Nullable; importandroid.support.v4.app.Fragment; importandroid.support.v4.app.FragmentManager; importandroid.support.v4.app.FragmentTransaction; importandroid.view.LayoutInflater; importandroid.view.View; importandroid.view.ViewGroup; importandroid.widget.Button; importandroid.widget.LinearLayout; public class MyFragment extendsFragment { LinearLayout linearLayout; Button button2; FragmentManager fragmentManager; @Nullable @Override publicView onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { View view=inflater.inflate(R.layout.layout1,container,false); linearLayout=getActivity().findViewById(R.id.line1); //通过getActivity()获取activity_main.xml文件中id号为line1的LinearLayout布局 button2=view.findViewById(R.id.button2); button2.setOnClickListener(newView.OnClickListener() { @Override public voidonClick(View v) { fragmentManager=getFragmentManager(); //实例化fragmentManager FragmentTransaction transaction=fragmentManager.beginTransaction(); //用来提交数据 transaction.remove(MyFragment.this); //移除MyFragment transaction.commit(); //提交数据 maxScreen(); //调用满屏函数 } }); returnview; } @Override public voidonDestroy() { super.onDestroy(); maxScreen(); } //设置线性布局为满屏 public voidmaxScreen(){ linearLayout.setLayoutParams(newLinearLayout.LayoutParams(getActivity().getWindowManager().getDefaultDisplay().getWidth(), getActivity().getWindowManager().getDefaultDisplay().getHeight())); } }
4.在MainActivity.java中应用Fragment
public class MainActivity extendsAppCompatActivity { Button button; //定义一个按钮,将其引入后台 FragmentManager fragmentManager;//定义一个fragmentManager LinearLayout linearLayout; @Override protected voidonCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); button=findViewById(R.id.button); linearLayout=findViewById(R.id.line1); //实例化linearLayout fragmentManager=getSupportFragmentManager(); //初始化fragmentManager //绑定点击事件 button.setOnClickListener(newView.OnClickListener() { @Override public voidonClick(View v) { //设置线性布局的宽度 linearLayout.setLayoutParams(new LinearLayout.LayoutParams(getWindowManager().getDefaultDisplay().getWidth()/3, getWindowManager().getDefaultDisplay().getHeight())); FragmentTransaction transaction=fragmentManager.beginTransaction(); //用来提交数据 transaction.replace(R.id.layout_main,new MyFragment()); //添加数据,参数1为activity_main.xml文件中的id transaction.addToBackStack(null); //监听退出键,若按退出键会返回上一级应用 transaction.commit(); //提交数据 } }); } }
效果图: