Fragment關閉指定頁面

2021-07-23 16:53:16 字數 1630 閱讀 1359

好記性不如爛筆頭,沒事記錄下,下次需要可以直接就能看了。

使用fragment需要記住這4個步驟

1.獲取fragmentmanager管理器,有個v4包下的,一般都用這個 getsupportfragmentmanager();

2.開啟事務,fragmentmanager.begintransaction()

3.新增fragment 或者替換       add 和 replace

4.最後一步就是提交事務。 commit();

fragment不像activity那樣,想關閉的時候直接finish,     fragment不能直接finish,如果想關閉指定的fragment那就需要設定乙個tag標記。通過remove移除   **:

//獲取fragmentmanager管理器

fragmentmanager fragmentmanager = getsupportfragmentmanager();

//開啟事務

fragmenttransaction begintransaction = fragmentmanager.begintransaction();

//關閉哪個頁面就設定個tag comm算是個標記 replace替換和新增add,當然還有顯示和隱藏,這裡先不說。

//fragmenttransaction comm = begintransaction.replace(r.id.fragment_f, fragment1, "comm");

//這裡面有三個引數, 1.乙個fragmentlayout布局, 2.要顯示的fragment, 3.就是設定tag(comm就是為當前的fragment設定tag)

fragmenttransaction comm = begintransaction.add(r.id.fragment_f, fragment1, "comm");

//提交事務

comm.commit();

tag設定好之後,不管你現在 在哪個fragment頁面,只要在想關閉comm這個標記的fragment,,,就在需要通過comm這個標記獲取到被標記的fragment

需要5個步驟。 獲取管理器 - findfragentbytag獲取被標記的fragment - 開啟事務 - 我要幹嗎?remove指定的fragment - commit提交。   

//獲取管理器

fragmentmanager manager = getactivity().getsupportfragmentmanager();

//通過fragmentmanager管理器獲取被標記的fragment

fragment fragment1 = manager.findfragmentbytag("comm");

if (fragment1 != null) {

//ismarket = true;//這行忽略

//開始事務 通過remove清除指定的fragment,並提交

manager.begintransaction().remove(fragment1).commit();

只要知道如何關閉指定的fragment頁面,其他的業務邏輯可以根據需求去實現。   其實就這麼 幾個步驟。

好記性不如爛筆頭!

fragment頁面重新整理

在專案中遇到要在乙個fragment裡面新增兩個登入和未登入的布局檔案,也就是說在設定裡面登出登入,切換到我的tab介面時需要載入未登入的布局檔案,重新整理布局思路如下 在fragment的onstart 方法裡面載入另外乙個布局 例項化布局的方法 layout not login inflater...

Fragment動態新增頁面

一.首先將fragment準備好 包含兩部分,一部分是布局檔案,一部分是類 1.布局檔案 普通的布局檔案就行 2.類 在類中引入布局檔案 package com.example.administrator.fragment import android.os.bundle import androi...

js關閉本頁面,父頁面指定跳轉或重新整理

關閉本頁面,跳轉到京東 response.setcharacterencoding gbk printwriter out response.getwriter out.print self.opener.location.href 關閉本頁面,重新整理父頁面 response.setcharact...