将Android活动定义为轻主题对话框

4

在我的应用程序中,我将一个Android活动定义为对话框。它看起来很好。唯一的问题是我的对话框出现在黑暗主题中。我想将其显示为浅色主题。我按以下方式定义了我的活动对话框:

<activity
    android:theme="@android:style/Theme.DeviceDefault.Dialog.MinWidth"
    android:name="com.example.dialog"
    android:label="@string/title_activity_list" 
    >
</activity>

如何做到这一点?有什么解决方案吗?需要帮助。谢谢。
4个回答

8

您需要使用Holo Light对话框主题:

<activity
    android:theme="@android:style/Theme.Holo.Light.Dialog"
    android:name="com.example.dialog"
    android:label="@string/title_activity_list" />

嗨,silvia_aut,谢谢你的回复。但是当我尝试这个时,它显示“错误:找不到与给定名称匹配的资源(在'value ='@ android:style / Theme.Light.Dialog'的'theme'处)。'如何解决这个问题? - nilkash
1
android:theme="@android:style/Theme.Holo.Dialog" 这样就可以正常运行。如果你想要浅色主题,你需要像RobinHood发布的那样创建自己的自定义主题。 - silvia_aut
也许这可以帮到你.. http://blog.andromo.com/2011/fixing-text-colours-on-an-alertdialog-when-using-theme-light/ - silvia_aut
1
是的,我尝试了 @android:style/theme.holo.light.Dialog,它运行良好。谢谢你的帮助。 - nilkash

3

以下是关于如何定义自定义主题到样式xml的代码:

样式:

<style name="Theme.D1NoTitleDim" parent="android:style/Theme.Translucent">
<item name="android:windowNoTitle">true</item>
<item name="android:windowContentOverlay">@null</item>
<item name="android:backgroundDimEnabled">true</item>
<item name="android:background">#22000000</item>
</style>

清单文件:

<activity
   android:theme="@style/Theme.D1NoTitleDim"
    android:name="com.example.dialog"
    android:label="@string/title_activity_list" 
    >
</activity>

1
这对我也有用。我将我的应用程序主题应用于对话框活动。
<style name="Theme.UserDialog" parent="@style/MyAppTheme">
    <item name="android:windowFrame">@null</item>
    <item name="android:windowIsFloating">true</item>
    <item name="android:windowIsTranslucent">true</item>
    <item name="android:windowNoTitle">true</item>
</style>

0

试试这个,可能会对你有帮助

<activity
    android:theme="@android:style/Theme_Wallpaper"
    android:name="com.example.dialog"
    android:label="@string/title_activity_list" 
    >
</activity>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接