首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

Android Fragment 之間跳轉與返回棧管理實戰

     編輯:程式設計綜合問答

場景需求

在一個 Activity 中包含多個 Fragment,實現:按鈕點擊從 Fragment1 跳轉到 Fragment2,按返回鍵可回到 Fragment1(Share 界面)。

核心實現方案

在 MainActivity 中定義公共跳轉方法,Fragment 通過 getActivity() 調用:

MainActivity 代碼

public class MainActivity extends Activity {
    private Fragment fragment1, fragment2;
    private FragmentManager fragmentManager;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        // 初始化 fragment1、fragment2 和 fragmentManager
    }

    // 公開跳轉方法
    public void gotoFragment2() {
        FragmentTransaction transaction = fragmentManager.beginTransaction();
        transaction.hide(fragment1);
        transaction.show(fragment2);
        transaction.addToBackStack(null); // 關鍵:加入返回棧
        transaction.commit();
    }
}

Fragment1 中按鈕點擊調用

button.setOnClickListener(v -> {
    ((MainActivity) getActivity()).gotoFragment2();
});

關鍵點解析

  • hide/show 而非 replace:保持 Fragment 實例狀態,避免重建
  • addToBackStack(null):將事務加入返回棧,系統自動處理返回鍵邏輯
  • Fragment 通信:通過 (MainActivity)getActivity() 獲取宿主 Activity 調用公共方法

進階建議

現代 Android 開發建議使用 Navigation Component 或 FragmentManager 的新 API,配合 ViewBinding 實現類型安全的導航。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved