Xamarin Android.App.DialogFragment已过时

Rab*_*820 5 android xamarin.android android-fragments xamarin

TL; DR有人知道Android.App.DialogFragmentXamarin 为什么过时了,更重要的是,推荐使用什么类?

更多信息:

我在Xamarin.Android应用中收到以下警告:

警告CS0618'DialogFragment'已过时:'此类在此android平台中已过时'警告CS0618'Activity.FragmentManager'已过时:'不建议使用'

从以下代码中:

using Android.App;

void onClick(int pos) {
    DialogFragment newFragment = new UsernameDialogFragment(_scans[pos]);
    newFragment.Show(_activity.FragmentManager, "dialog");
}

public class UsernameDialogFragment : DialogFragment {
    public override Dialog OnCreateDialog(Bundle savedInstanceState) {
        var builder = new AlertDialog.Builder(Activity);
        // Build the dialog...
        return builder.Create();
    }
}
Run Code Online (Sandbox Code Playgroud)

请注意,我使用的是Android.App.DialogFrament类,而不是中的类Android.Support.V4.App。该onClick方法是的一部分RecyclerView.Adapter

对于Xamarin这样的问题,令我感到沮丧的是,几乎没有足够的文档。IntelliSense警告不建议使用其他API,除非Google搜索“ DialogFrament已过时”,否则与Xamarin相关的内容均不存在,除非此旧论坛帖子建议使用过时的API,最糟糕的是,DialogFragment API文档甚至都没有表明班级已经过时了!

一些版本信息:

Xamarin.Forms NuGet:v3.1.0.697729
Visual Studio 2017:v15.8.1
目标框架:Android 9.0(P)
最低Android版本:Android 5.0(API级别21-棒棒糖)
目标Android版本:Android 9.0(API级别27-Oreo) )

Sus*_*ver 3

查看 Android 文档,它在 Android P ie / API Level 28 中已弃用。假设 Xamarin 文档最终会更新,因为 Android P 于 2018 年 8 月 6 日刚刚发布,但我建议始终查看链接的官方Android 文档。

回复: https: //developer.android.com/reference/android/app/DialogFragment

此类在 API 级别 28 中已弃用。

使用支持库 DialogFragment 在所有设备上实现一致的行为并访问生命周期。

所以,是的,支持库是未来(嗯……是未来),Android.Support.V4.App.Fragment就目前而言,但它们正在被 Android 扩展库 ( AndroidX) 取代,并且所有未来的更新都将在那些仅存在 bug/ 的 AndroidX 库中安全修复已应用于支持库。

28.0.0 的稳定版本将是打包为 android.support 的最终功能版本。所有后续功能版本将仅作为 androidx 打包的工件提供。

回复:https://android-developers.googleblog.com/2018/05/hello-world-androidx.html