小编Ada*_* Ma的帖子

如何在片段中嵌套 ViewPager2

我试图在我的主片段中放置一个带有 2 个选项卡(2 个片段)的 ViewPager2。

我的片段类扩展了 Fragment,我需要它包含一个 ViewPager2,其中实现了片段。
我无法在网络上找到清楚地解释这一点的指南,因为所有这些指南都是在扩展 FragmentActivity 而不是 Fragment 的类中实现的。

例如:https : //developer.android.com/training/animation/screen-slide-2#fragment

android android-fragments android-viewpager2

8
推荐指数
1
解决办法
4293
查看次数

Material Alert Dialog,该组件上的样式要求你的应用主题为 Theme.AppCompat

我正在尝试制作 MaterialAlertDialog 但无论如何我都会收到以下错误

 java.lang.IllegalArgumentException: The style on this component requires your app theme to be Theme.AppCompat (or a descendant).
        at com.google.android.material.internal.ThemeEnforcement.checkTheme(ThemeEnforcement.java:243)
        at com.google.android.material.internal.ThemeEnforcement.checkAppCompatTheme(ThemeEnforcement.java:213)
        at com.google.android.material.internal.ThemeEnforcement.checkCompatibleTheme(ThemeEnforcement.java:148)
        at com.google.android.material.internal.ThemeEnforcement.obtainStyledAttributes(ThemeEnforcement.java:76)
        at com.google.android.material.dialog.MaterialDialogs.getDialogBackgroundInsets(MaterialDialogs.java:60)
        at com.google.android.material.dialog.MaterialAlertDialogBuilder.<init>(MaterialAlertDialogBuilder.java:117)
        at com.google.android.material.dialog.MaterialAlertDialogBuilder.<init>(MaterialAlertDialogBuilder.java:103)
        at com.adamm.quem.MainActivity$1.onItemClick(MainActivity.java:118)
Run Code Online (Sandbox Code Playgroud)

我使用自定义主题作为我的 MainActivity 主题,它是 MaterialComponents 的父级

<style name="MainMaterialTheme" parent="Theme.MaterialComponents.Light.NoActionBar">
        <item name="colorPrimary">@color/colorPrimary</item>
        <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
        <item name="colorAccent">@color/colorAccent</item>
    </style>
Run Code Online (Sandbox Code Playgroud)

将主题更改为 AppCompat 无济于事,也不正确我正在遵循 Material IO 解释的实现https://material.io/develop/android/components/dialog/

我的代码:

AlertDialog.Builder builder = new MaterialAlertDialogBuilder(getApplicationContext())
                            .setTitle("Title")
                            .setMessage("Message")
                    builder.show();
Run Code Online (Sandbox Code Playgroud)

如何解决这个问题?

android android-alertdialog material-design

6
推荐指数
1
解决办法
2621
查看次数