【问题标题】:Change actionbar background from Dialog Activity从对话框活动更改操作栏背景
【发布时间】:2013-12-11 10:53:45
【问题描述】:

我正在制作一个 Activity 对话框并想要自定义 Activity 的布局。 我已经通过扩展"@android:style/Theme.Holo.Dialog" 的活动在清单中设置了自定义样式。

如果我使用<item name="android:windowTitleStyle">CUSTOM_STYLE_NAME</item>,背景颜色的唯一变化是在标题后面,而不是整个操作栏。

在我的自定义样式中设置 <item name="android:actionBarStyle"> 也没有帮助。

那么如何在我的活动对话框中更改操作栏的背景?

【问题讨论】:

  • 将对话框主题应用于活动并像对话框一样使用它
  • 嗨 Raghunandan 感谢您的回复,但问题是我有一个带有操作栏的对话框主题,如果我设置 windowTitleStyle 样式,则只有文本的背景会获得颜色,而不是整个标题栏/动作栏

标签: android styles android-activity android-actionbar android-dialog


【解决方案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

【讨论】:

    【解决方案2】:

    我没有看到您的自定义样式 XML,所以我猜您设置了 textbackground 而不是背景色..

    【讨论】:

    • 嗨 Esmaeel,不,我已经使用了 backgroundcolor,只有样式父级是 android:Widget.TextView
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-05-31
    • 1970-01-01
    • 2015-02-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多