0

目前,我们的应用程序有一个非常自己的自定义主题

// AndroidManifest.xml
<application
    ...
    android:theme="@style/Theme.JStock.Light.DarkActionBar" >

    <activity android:name="org.yccheok.jstock.gui.billing.ShopDialogFragmentActivity"
        android:windowSoftInputMode="stateAlwaysHidden" />

</application>


// themes.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
    <style name="Theme.JStock.Light.DarkActionBar" parent="Theme.Sherlock.Light.DarkActionBar">
        <item name="watchlistLinearLayoutHeaderBackground">@color/watchlist_linear_layout_header_background_inverse_holo_light</item>
        ....
        <item name="homeMenuBackground">@color/home_menu_background_inverse_holo_light</item>
    </style>
</resource>

为了使ShopDialogFragmentActivity看起来像一个对话框,我尝试使用

    <activity android:name="org.yccheok.jstock.gui.billing.ShopDialogFragmentActivity"
        android:theme="@android:style/Theme.Dialog"
        android:windowSoftInputMode="stateAlwaysHidden" />

但是,这会产生一个问题。

使用的布局文件ShopDialogFragmentActivity,不能再访问Theme.JStock.Light.DarkActionBar.

例如,watchlistLinearLayoutHeaderBackground并且homeMenuBackground不再对 可见ShopDialogFragmentActivity,如果它正在使用@android:style/Theme.Dialog

我的猜测是,主题@android:style/Theme.Dialog已完全覆盖Theme.JStock.Light.DarkActionBar。中定义的所有属性Theme.JStock.Light.DarkActionBar不再可见Activity,使用不同的主题Application

我想知道,克服这个问题的优雅方法是什么?

4

1 回答 1

0

使用parent="android:style/Theme.Dialog"制作您的自定义样式

<style name="NoTitleDialog" parent="android:style/Theme.Dialog">
<item name="android:windowNoTitle">true</item>
</style>
于 2013-10-20T14:42:34.760 回答