【问题标题】:How can I replicate the AlertDialog using Activity as a dialog如何使用 Activity 作为对话框复制 AlertDialog
【发布时间】:2019-02-22 00:29:36
【问题描述】:

我有一个在整个应用程序中使用的AlertDialog。我很满意它的外观以及复制它的内容,使其看起来与使用Activity as a Dialog 时完全相同。在某些情况下,我需要使用Activity as a Dialog 而不是AlertDialog,因为我必须阻止应用程序启动仅在某些情况下发生的新活动。

这是我的AlertDialog 的外观。

这是我的Activity As A Dialog

如何使第二个对话框与警报对话框完全一致?主对话框使用我的默认主题和粉红色单选按钮,但第二个没有。第二个对话框也更宽更短。有什么方法可以找到警报对话框的布局属性,只需将这些属性添加到 AAAD 的 xml 中?还是有更好的办法?

这是Alert Dialog的构建器代码

 AlertDialog.Builder alt_bld = new AlertDialog.Builder(this);
    alt_bld.setTitle("Alert Dialog"); 


    alt_bld.setSingleChoiceItems(myArray.toArray(new String[myArray.size()]), 0, new DialogInterface.OnClickListener()

AAAD 的代码

 setContentView(R.layout.activity_da_aamount_to_finish);
    setTitle("Activity As A Dialog");

清单文件

<activity android:name=".DaAAmountToFinish"
              android:theme="@style/Theme.AppCompat.Light.Dialog.MinWidth">
              android:excludeFromRecents="true"></activity>

此活动的 xml 只是一个带有三个按钮的 RadioGroup。

我应该怎么做?

如果我将 AAAD 的清单主题更改为 android:theme="@style/AppTheme"&gt;,它会以我想要的样式出现,但作为一个整体活动。我如何保持对话框的外观和实现这个主题。

【问题讨论】:

    标签: android dialog


    【解决方案1】:

    如果你想复制对话框的结构,你可以使用 Android Studio 的布局检查器工具,它会显示视图树。 Layout inspector guide

    对于粉红色,Android 从您的样式文件中获取它。这个颜色应该是你的 AppTheme 的 colorAccent 或 colorPrimary 属性(记不太清了)。

    <style name="AppTheme.Normal.Watermelon" parent="Base.AppTheme">
        <item name="colorPrimary">@color/watermelon</item>
        <!-- or -->
        <item name="colorAccent">@color/watermelon</item>
    </style>
    

    希望这有点帮助!

    【讨论】:

    • 谢谢,我能用这个找到某个地方。
    猜你喜欢
    • 2014-11-05
    • 2010-12-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多