日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

android移除fragment,Fragment 的创建、替换与移除

發布時間:2024/1/8 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 android移除fragment,Fragment 的创建、替换与移除 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、前言

Fragment 是從 Android 3.0 開始引入的,翻譯過來就是碎片的意思。Fragment 的作用以及使用場景我就不贅述了。這篇博文我們就主要講 Fragment 的創建、替換與移除這三個操作,至于 Fragment 的生命周期、如何與 Activity 進行通信等內容我們會在后面陸續講到的。

一、Fragment 的創建

要使用 Fragment,可以通過繼承 Fragment 類來創建 Fragment,在多數情況下我們需要給 Fragment 定制一個 UI,但是,也可以為 Activity 創建一個沒有 UI,只提供后臺行為的 Fragment。Fragment 的創建一般有兩種方式:通過 xml 標簽創建,即靜態添加 Fragment;

通過 java 代碼動態創建,即動態添加 Fragment。

1.1、通過 xml 標簽靜態添加 Fragment(不常用)在 IndexActivity 的 activity_index 布局中加入 fragment 標簽,并通過 name 關聯到相應的 Fragment;<?xml version="1.0" encoding="utf-8"?>

xmlns:tools="http://schemas.android.com/tools"

android:layout_width="match_parent"

android:layout_height="match_parent"

android:orientation="vertical"

tools:context=".IndexActivity">

android:id="@+id/fragment_center"

android:name="com.zjgsu.fragmentdemo.fragment.CenterFragment"

android:layout_width="match_parent"

android:layout_height="0dp"

android:layout_weight="5" />

android:id="@+id/fragment_bottom"

android:name="com.zjgsu.fragmentdemo.fragment.BottomFragment"

android:layout_width="match_parent"

android:layout_height="0dp"

android:layout_weight="1" />

創建 CenterFragment;public class CenterFragment extends Fragment {

@Nullable

@Override

public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {

View view = inflater.inflate(R.layout.fragment_center, container, false);

return view;

}

}

創建 BottomFragment;public class BottomFragment extends Fragment {

@Nullable

@Override

public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {

View view = inflater.inflate(R.layout.fragment_bottom, container, false);

return view;

}

}

然后我們啟動 IndexActivity 就可以看到效果了。

1.2、通過 Java 代碼動態添加 Fragment動態添加 Fragment 則不需要在 IndexActivity 的 activity_index 布局中加入 fragment 標簽;<?xml version="1.0" encoding="utf-8"?>

xmlns:tools="http://schemas.android.com/tools"

android:layout_width="match_parent"

android:layout_height="match_parent"

android:orientation="vertical"

tools:context=".IndexActivity">

android:id="@+id/layout_center"

android:layout_width="match_parent"

android:layout_height="0dp"

android:layout_weight="5" />

android:id="@+id/layout_bottom"

android:layout_width="match_parent"

android:layout_height="0dp"

android:layout_weight="1" />

動態添加 Fragment 主要涉及 FragmentManager 和 FragmentTransaction 這兩個操作對象。public class IndexActivity extends AppCompatActivity {

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_index);

/*

動態添加 Fragment 到 Activity 中

要涉及到兩個操作對象

FragmentManager 和

FragmentTransaction

*/

FragmentManager fragmentManager = getSupportFragmentManager();

FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();

fragmentTransaction.add(R.id.layout_center, new CenterFragment());

fragmentTransaction.add(R.id.layout_bottom, new BottomFragment());

fragmentTransaction.commit();

}

}

二、Fragment 的替換與移除

Fragment 的替換與移除也都是通過 FragmentManager 和 FragmentTransaction 來完成的。

我們先來看下效果:

具體代碼如下所示public class Index2Activity extends AppCompatActivity implements View.OnClickListener {

private Button btnReplace;

private Button btnRemove;

private FirstFragment f1;

private SecondFragment f2;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_index2);

initView();

}

// 初始化 View

private void initView() {

btnReplace = findViewById(R.id.btn_replace);

btnRemove = findViewById(R.id.btn_remove);

btnReplace.setOnClickListener(this);

btnRemove.setOnClickListener(this);

initFragment();

}

// 初始化 Fragment

private void initFragment() {

f1 = new FirstFragment();

f2 = new SecondFragment();

addFragment();

}

// 添加 Fragment

private void addFragment() {

getSupportFragmentManager()

.beginTransaction()

.add(R.id.layout_container, f1)

.commit();

}

@Override

public void onClick(View v) {

switch (v.getId()) {

case R.id.btn_replace:

getSupportFragmentManager()

.beginTransaction()

.replace(R.id.layout_container, f2)

// 點擊 返回鍵 可以回到原來的 Fragment

.addToBackStack(null)

.commit();

break;

case R.id.btn_remove:

getSupportFragmentManager()

.beginTransaction()

.remove(f2)

.commit();

break;

}

}

}

三、源碼

源碼已經上傳至 github,下一篇博文我們講 Fragment 與 Activity 之間的通信。

總結

以上是生活随笔為你收集整理的android移除fragment,Fragment 的创建、替换与移除的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。