目前,我们的应用程序有一个非常自己的自定义主题
// 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
。
我想知道,克服这个问题的优雅方法是什么?