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