簡體   English   中英

Activity 無法使用 androidx

[英]Activity's incapability with androidx

我遇到了一個與 Activity 的 getFragmentManager() 與 androidx.FragmentManager 不一致的問題。

所以我有以下方法:

public void myMethod(Activity activity) {
    /**
     * do some staff here
     */
    
    //now we should open a DialogFragment
    new MyCustomDialogFragment().show((activity).getFragmentManager(), MyCustomDialogFragment.TAG);
    
}

在這里我收到錯誤"Can not resolve method show(android.app.FragmentManager, java.lang.String)

所有這些都是因為當ActivitygetFragmentManager()android.app包返回FragmentManager時,我的DialogFragment來自androidx.fragment.app包。

我看到 2 個選項來解決這個問題。

  1. 更改DialogFragment依賴DialogFragment ,並使用android.app依賴項
  2. 更改myMethod()簽名以接收AppCompatActivity (來自 androidx)而不是Activity並調用getSupportedFragmentManager()

第一個解決方案不好,因為我想在任何可能的地方繼續使用 androidx 類。 其次,盡管 AppCompatAcivitity 是最佳實踐,但也有缺點。

問題是:有沒有辦法繼續使用 androidx 依賴項並在myMethod()Activity類型參數?

您應該使用FragmentActivity (來自 androidx)而不是Activity作為myMethod()的參數類型,並調用getSupportFragmentManager()以獲取FragmentManager 這應該可以解決您的問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM