我正在创建一个活动对话框,并希望自定义活动的布局。
我已经通过我的活动在清单中设置了自定义样式,扩展了"@android:style/Theme.Holo.Dialog"
。
如果我使用<item name="android:windowTitleStyle">CUSTOM_STYLE_NAME</item>
,backgroundcolor的唯一更改是在标题后面,而不是整个操作栏。
在我的自定义样式中设置<item name="android:actionBarStyle">
也无济于事。
那么如何在“活动对话框”中更改操作栏的背景?
答案 0 :(得分:1)
我修复了在stackoverflow上发现的this调整问题。 你基本上做的是声明你自己的对话框样式,你将其作为主题添加到你的活动:
<style name="PopupTheme" parent="android:Theme.Holo.Light.Dialog">
<item name="android:windowIsFloating">false</item>
<item name="android:windowContentOverlay">@null</item>
<item name="android:windowSoftInputMode">stateAlwaysHidden</item>
<item name="android:windowActionModeOverlay">true</item>
<item name="android:windowIsTranslucent">true</item>
</style>
在你的oncreate中声明以下方法:
public static void showAsPopup(Activity activity) {
//To show activity as dialog and dim the background, you need to declare android:theme="@style/PopupTheme" on for the chosen activity on the manifest
activity.requestWindowFeature(Window.FEATURE_ACTION_BAR);
activity.getWindow().setFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND,
WindowManager.LayoutParams.FLAG_DIM_BEHIND);
LayoutParams params = activity.getWindow().getAttributes();
params.height = 850; //fixed height
params.width = 850; //fixed width
params.alpha = 1.0f;
params.dimAmount = 0.5f;
activity.getWindow().setAttributes((android.view.WindowManager.LayoutParams) params);
setContentView(R.layout.activity_main);
}
在此之后,您可以使用您选择的背景颜色添加自己的自定义操作栏样式:
<item name="android:actionBarStyle">@style/MyActionBar</item>
PS。 LayoutParams来自WindowManager
答案 1 :(得分:0)
我没有看到你的自定义样式XML,我想你设置textbackground而不是backgrondcolor ..