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) )
查看 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
| 归档时间: |
|
| 查看次数: |
2018 次 |
| 最近记录: |