详解Android studio 动态fragment的用法

fragment的使用时Android的基础,它有两种用法,第一个就是静态的fragment。第二个则是动态的fragment。
静态fragment直接在layout创建你想要的fragment的XML的文件,然后在你的Java包里面创建对应fragment的class文件
布局代码如下所示

在这里插入图片描述

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 android:layout_width="match_parent"
 android:layout_height="match_parent"
 android:orientation="vertical">
 <TextView
  android:layout_width="match_parent"
  android:layout_height="wrap_content"
  android:text="欢迎来到广西!"/>

</LinearLayout>

在这里插入图片描述

<?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:layout_height="match_parent"
 android:orientation="vertical"
 tools:context=".MainActivity">
 <Button
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  android:text="去广西"
  android:id="@+id/bt_anjian1"/>
 <Button
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  android:text="去广东"
  android:id="@+id/bt_anjian2"/>
 <LinearLayout
  android:layout_width="match_parent"
  android:layout_height="wrap_content"
  android:orientation="vertical"
  android:id="@+id/ll_rongqi"
  android:layout_weight="9">

 </LinearLayout>
 <fragment
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  android:id="@+id/fragment_1"/>

</LinearLayout>

*这里需要注意一下,如果你不给fragment加个id,那你运行app的时候将会发生闪退现象。

在这里插入图片描述

package com.example.anyone_fragment_2;

import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;

import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.fragment.app.Fragment;

public class Fragment_1 extends Fragment {


 @Nullable
 @Override

 public View>
<?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:layout_height="match_parent"
 android:orientation="vertical"
 tools:context=".MainActivity">
 <Button
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  android:text="去广西"
  android:id="@+id/bt_anjian1"/>
 <Button
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  android:text="去广东"
  android:id="@+id/bt_anjian2"/>
 <LinearLayout
  android:layout_width="match_parent"
  android:layout_height="wrap_content"
  android:orientation="vertical"
  android:id="@+id/ll_rongqi"
  android:layout_weight="9">

 </LinearLayout>

</LinearLayout>

布局效果图是这样的

在这里插入图片描述

这里fragment的XML文件和开头所说的静态fragment的那个XML文件的写法是一样的
同理,fragment对应的class文件也是相同的。

package com.example.anyone_fragment_2;

import androidx.appcompat.app.AppCompatActivity;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentManager;
import androidx.fragment.app.FragmentTransaction;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;

public class MainActivity extends AppCompatActivity implements View.OnClickListener {//有abstract就闪退

 private Button bt_anjian1,bt_anjian2;
 private Fragment Fragment_1,Fragmentnow,Fragment_2;
 private FragmentManager fragmentManager;
 private FragmentTransaction fragmentTransaction;
 @Override
 protected void>
private void chushihua()
 {
  bt_anjian1=findViewById(R.id.bt_anjian1);
  bt_anjian2=findViewById(R.id.bt_anjian2);
  bt_anjian1.setOnClickListener(this);
  bt_anjian2.setOnClickListener(this);
 }

详解Android studio 动态fragment的用法

扫一扫手机访问