![](/img/trans.png)
[英]Open DialogFragment in an some Activity using AndroidX library, still's possible?
[英]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)
。
所有這些都是因為當Activity
的getFragmentManager()
從android.app
包返回FragmentManager
時,我的DialogFragment
來自androidx.fragment.app
包。
我看到 2 個選項來解決這個問題。
DialogFragment
依賴DialogFragment
,並使用android.app
依賴項myMethod()
簽名以接收AppCompatActivity
(來自 androidx)而不是Activity
並調用getSupportedFragmentManager()
。第一個解決方案不好,因為我想在任何可能的地方繼續使用 androidx 類。 其次,盡管 AppCompatAcivitity 是最佳實踐,但也有缺點。
問題是:有沒有辦法繼續使用 androidx 依賴項並在myMethod()
有Activity
類型參數?
您應該使用FragmentActivity
(來自 androidx)而不是Activity
作為myMethod()
的參數類型,並調用getSupportFragmentManager()
以獲取FragmentManager
。 這應該可以解決您的問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.