Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android ActionBarSherlock没有';不支持轻主题警报对话框?_Android_Actionbarsherlock_Android Alertdialog_Android Theme - Fatal编程技术网

Android ActionBarSherlock没有';不支持轻主题警报对话框?

Android ActionBarSherlock没有';不支持轻主题警报对话框?,android,actionbarsherlock,android-alertdialog,android-theme,Android,Actionbarsherlock,Android Alertdialog,Android Theme,正如标题所说,我正在使用actionBarSherlock库和一个light主题,有时我需要使用alertDialog.Builder类显示一个对话框 问题是,无论我尝试什么,主题都不适用于对话框本身。该主题应适用于新API和旧API(在蜂巢之前) 例如: 代码: 或: xml: @空的 @样式/对话框WindowTitle.Sherlock.Light @可绘图/abs对话框全全息灯 真的 @空的 @android:style/Animation.Dialog 状态未指定|调整盘 假的 真的

正如标题所说,我正在使用actionBarSherlock库和一个light主题,有时我需要使用alertDialog.Builder类显示一个对话框

问题是,无论我尝试什么,主题都不适用于对话框本身。该主题应适用于新API和旧API(在蜂巢之前)

例如:

代码:

或:

xml:


@空的
@样式/对话框WindowTitle.Sherlock.Light
@可绘图/abs对话框全全息灯
真的
@空的
@android:style/Animation.Dialog
状态未指定|调整盘
假的
真的
真的
真的
0.6
@空的
@颜色/abs\uuu主要\uu文本\uHolo\u灯光
@颜色/绝对值\u主要\u文字\u全息图\u深色
@尺寸/绝对值对话框最小宽度主
@尺寸/绝对值对话框最小宽度较小
假的
@空的
?android:attr/textAppearanceInverse
我知道我可以使用dialogFragment,但还有其他方法吗?对话框非常简单,因为有很多对话框,所以将它们全部更改会很烦人



编辑:我可能错了,但使用android:alertDialogStyle属性(如图所示)似乎会更改旧API的属性,但它没有太多的定制。事实上,它只支持颜色,我甚至不知道如何设置文本颜色(标题和/或消息)。

经过研究,我认为这不是ActionBarScherlock问题,而是警报对话框中的轻主题问题。让我们尝试一下:

使用:

更改:

<style name="AppTheme_LightDialog" parent="@android:style/Theme.Light">
View view = View.inflate(activity, R.layout.myDialog, null);
致:


这就是我所做的,它使对话的主体变成白色。标题仍在黑色背景上:

new AlertDialog.Builder(
    new ContextThemeWrapper(
        activity,
        R.style.Theme_Sherlock_Light));

我也尝试了
Theme\u Sherlock\u Light\u NoActionBar
,但似乎没有任何区别。

Hmm奇怪。这通常是可行的。它现在看起来像什么?你能提供一个屏幕截图吗?ABS并不是要带来对话主题,他们甚至在上一个版本中删除了对话主题。到处试试,我很确定他们支持对话主题。@stoilkov你确定吗?为什么他们有dialogFragment,它有相同的样式(或者它有相同的样式?)?为什么不能将同样的方法应用于普通对话框?它们有那么不同吗?对话框主题被删除,因为它们没有操作栏,这就是它们不在库范围内的原因。您应该能够使用删除的提交内容创建类似的效果。我设法使对话框主体变为白色,但标题背景仍然是黑色。你也遇到过同样的情况吗?不起作用,而且由于某种原因,在尝试更新actionBarSherlock库后,我无法像以前一样使用android:windowTitleStyle和android:windowBackground的值。可能是因为在新版本中,对话框主题的活动被删除,因为它们没有操作栏,这就是它们不在库范围内的原因。您应该能够使用删除的提交内容创建类似的效果。我知道我需要下载图像文件,但我也需要复制红色标记的线条吗?或者只是其中的一部分?另外,我可以将对话主题设置为对话而不是活动吗?我编辑了我的答案。在花大力气还原ActionBarSherlock删除的内容之前,我会先尝试一下。您的xml在eclipse上显示了android:windowTitleStyle和android:windowBackground行的错误,因为它们的值不是公共的。但是您也在旧的android版本上尝试过吗?我试过了,但没用。也许是因为我有一个全局文本颜色是白色的?是的,我在2.3.6上测试所有东西,我会测试出来。对于进度对话框,我应该做什么?我想它也有同样的问题。我已经在galaxy s2设备上用2.3.5版本的android进行了测试。它不起作用。它显示了一个黑色警报对话框。
final AlertDialog.Builder builder = new AlertDialog.Builder(new ContextThemeWrapper(activity, R.style.AppTheme_LightDialog));
<style name="AppTheme_LightDialog" parent="@android:style/Theme.Light">
<style name="AppTheme_LightDialog" parent="@android:style/Theme.Dialog">
<style name="AppTheme_LightDialog" parent="@android:style/Theme.Dialog">
    <item name="android:windowFrame">@null</item>
    <item name="android:windowTitleStyle">@android:style/DialogWindowTitle</item>
    <item name="android:windowBackground">@android:drawable/panel_background</item>
    <item name="android:windowIsFloating">true</item>
    <item name="android:windowContentOverlay">@null</item>
    <item name="android:windowAnimationStyle">@android:style/Animation.Dialog</item>
    <item name="android:windowSoftInputMode">stateUnspecified|adjustPan</item>
</style>
<item name="android:textColor">?android:attr/textColorPrimaryInverseDisableOnly</item>
View view = View.inflate(activity, R.layout.myDialog, null);
View view = View.inflate(new ContextThemeWrapper(activity, R.style.AppTheme_LightDialog), R.layout.myDialog, null);
new AlertDialog.Builder(
    new ContextThemeWrapper(
        activity,
        R.style.Theme_Sherlock_Light));