目前,我们的应用程序有一个非常自己的自定义主题
// 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
不再可见。
我想知道,克服这个问题的优雅方法是什么?
答案 0 :(得分:0)
使用 parent =“android:style / Theme.Dialog”
制作自定义样式<style name="NoTitleDialog" parent="android:style/Theme.Dialog">
<item name="android:windowNoTitle">true</item>
</style>