当前位置: 首页 > 知识库问答 >
问题:

使用私有样式(未找到与给定名称匹配的资源)

万俟靖
2023-03-14

我想应用像图形布局显示为主题的样式。设备默认值。对话框。警报。我知道它现在是私有样式,我不能将其作为父样式。

我该怎么做才能将这种风格融入我的DialogFragment?

(我的目标是API 15,也许我想minSdk API 12)。

这向我报告了一个错误(家长,就像我读到的,它现在是私有的):

<style name="MyDialogStyle" parent="@android:style/Theme.DeviceDefault.Dialog.Alert">

未找到与给定名称匹配的资源。

我只是读到必须“复制”风格的项目,但我没有发现它在哪里?

谁能帮帮我吗?我需要将该样式“克隆”到我的自定义样式。

提前谢谢。

DialogFragment的硬编码背景

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    getDialog().getWindow().setBackgroundDrawable(new ColorDrawable(0));

    return super.onCreateView(inflater, container, savedInstanceState);
}

我的定制风格

<style name="MyDialogStyle">    
    <item name="android:windowBackground">@android:color/transparent</item>
    <item name="android:background">@android:color/transparent</item>
    <item name="android:windowIsTranslucent">true</item>
    <item name="android:windowContentOverlay">@null</item>
</style>

我访问了这些链接:

http://developer.android.com/reference/android/app/AlertDialog.htmlhttp://developer.android.com/guide/topics/ui/themes.html

http://code.google.com/p/android/issues/detail?can=2

在最新的android 3.2 sdk更新后,未找到与给定名称“@android:style/AlertDialog”错误匹配的资源

http://daniel-codes.blogspot.com/2011/08/new-to-android-more-style-restrictions.html

https://android.googlesource.com/platform/frameworks/base/ /refs/heads/master/core/res/res/values/styles.xml

https://android.googlesource.com/platform/frameworks/base/ /refs/heads/master/core/res/res/values/themes.xml

https://android.googlesource.com/platform/frameworks/base/ /d11e6151fe88314505fa7adca6278de2e772b11c/core/res/res/values/themes_device_defaults.xml

共有1个答案

程祯
2023-03-14

最后,我用一个对话框解决了这个问题,而不是一个对话框片段,因为最后一个对话框不支持透明布局。很容易设置透明背景,创建新的活动,并在清单中设置样式。否则,我必须使用活动而不是片段来更改对话框的结构。

我希望这可以节省一些人很多时间的研究。

再见

 类似资料: