Android:更改背景颜色显示对话框

时间:2016-04-13 21:26:53

标签: java android android-dialogfragment

当我们显示DialogFragment时,我们如何更改背景的前景色,就像我们点击evernote或messenger应用程序中的工厂一样,我知道这样做的方式可能会有所不同,但是&#39 ;我正在寻找的那种效果

2 个答案:

答案 0 :(得分:1)

我找到了解决此问题的方法。这是代码。 在styles.xml中设计一个自定义主题。

styles.xml

`let emailList = List<String>()`

在清单文件中,在弹出窗口中使用此样式。

Android清单

<style name="AppTheme.CustomTheme">
        <item name="android:windowIsFloating">true</item>
        <item name="windowActionBar">false</item>
        <item name="windowNoTitle">true</item>
        <item name="android:windowBackground">@android:color/transparent</item>
</style>

在layout.xml文件中,使用3个不同的relativeLayouts,一个作为根目录,另一个作为褪色背景,另一个作为弹出窗口。

activity_dialog_design.xml

<activity android:name=".DialogDesign"
            android:theme="@style/AppTheme.CustomTheme"
            android:screenOrientation="portrait"></activity>

在activity.java文件中设置褪色窗口的高度和宽度。

DialogDesign.java

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".DialogDesign">

    <RelativeLayout
        android:id="@+id/fadedBg"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="#7fffffff"
        android:layout_margin="0dp"/>

    <RelativeLayout
        android:layout_width="300dp"
        android:layout_height="500dp"
        android:layout_alignParentBottom="true"
        android:layout_marginTop="100dp"
        android:layout_marginBottom="100dp"
        android:layout_centerHorizontal="true"
        android:background="@android:color/white"/>
</RelativeLayout>

在那里,完成了!在内部最相关的布局中添加要添加的内容。

答案 1 :(得分:0)

回答可能太晚了。但是我结合了一些解决方案,并获得了实现此目标的正确方法。

首先在您的styles.xml中创建以下主题:

<style name="MyCustomTheme" parent="@android:style/Theme.Panel">
    <item name="android:backgroundDimEnabled">true</item>
    <item name="android:backgroundDimAmount">0.7</item>
</style>

首先启用一个名为“ backgroundDimEnabled”的属性,以在屏幕上显示对话框时使屏幕前景更暗。然后为黑暗量设置一个浮点值。(0

,并在对话框片段的onCreateDialog方法中使用此主题。

 @Override
public Dialog onCreateDialog(@Nullable Bundle savedInstanceState) {
    final AlertDialog.Builder builder = new AlertDialog.Builder(getActivity(), R.style.MyCustomTheme);
    View addDialogView = getActivity().getLayoutInflater().inflate(R.layout.word_detail_fragment, null);
    builder.setView(addDialogView);

    return builder.create();
}