Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/179.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在安卓系统中打开片段时,背景变暗_Java_Android_Android Layout_Android Fragments_Background - Fatal编程技术网

Java 在安卓系统中打开片段时,背景变暗

Java 在安卓系统中打开片段时,背景变暗,java,android,android-layout,android-fragments,background,Java,Android,Android Layout,Android Fragments,Background,如何在打开片段时使整个背景变暗?创建DialogFragment时也是如此 现在,我可以使用高度和宽度为match_parent的视图来调暗应用程序窗口的背景。但是使用它不会使DialogFragment出现的状态栏背景变暗 当创建或打开片段时,我想使整个背景变暗,包括应用程序窗口和状态栏 现在这种情况发生在DialogFragment上。但我只能使用片段。我就是这么做的 除了片段的主布局外,我还采用了高度和宽度匹配的相对布局 <RelativeLayout android

如何在打开片段时使整个背景变暗?创建DialogFragment时也是如此

现在,我可以使用高度和宽度为match_parent的视图来调暗应用程序窗口的背景。但是使用它不会使DialogFragment出现的状态栏背景变暗

当创建或打开片段时,我想使整个背景变暗,包括应用程序窗口和状态栏

现在这种情况发生在DialogFragment上。但我只能使用片段。

我就是这么做的 除了片段的主布局外,我还采用了高度和宽度匹配的相对布局

<RelativeLayout
        android:id="@+id/rl"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@drawable/background_transition"/>
然后打电话

transition.startTransition(300);
使背景变暗,以及

transition.reverseTransition(300);
返回正常背景

希望能有所帮助。

试试这个:

fragmentParentLayout.getForeground().setAlpha(215);

我尝试了Nuzha的版本,我的应用程序也崩溃了

我确实找到了两种可能的解决办法

1)如果使用以下代码,将使后面的片段更白,而不是变暗:

override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
    super.onViewCreated(view, savedInstanceState)

    if (Build.VERSION.SDK_INT >= 23) {
            view.alpha = 0.2F
        }
注: 根据设置的值,浮点值越接近0,背景的白色越透明(仅适用于23+)

2)如果您希望背面碎片变暗(暗)

首先,您可以在资源文件夹中创建一种颜色,并使其有点透明。例如,我使用了下面的一个来获得更暗的效果:#7E000000

接下来,在onViewCreated()方法中,创建颜色变量,并将其作为可绘制颜色添加到视图的前景中

if (Build.VERSION.SDK_INT >= 23) {
           val color: Int = R.color.black_transparent
           view.foreground = ColorDrawable(resources.getColor(color, resources.newTheme()))
注 确保禁用任何可能在back片段中可见的按钮,否则,如果用户按下按钮,应用程序将崩溃

     buttonRegisterEvent.isEnabled = false

最后一步,如果希望用户导航回前一个片段,请确保删除前景色并启用可能已禁用的任何按钮

您是否尝试过,getActivity().getWindow().addFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND)?是的,我在fragment onCreateView中尝试过,但没有成功。@kanudo您是如何实现的?@ashwinmahajan正在设置状态和导航栏颜色的动画。它感觉有点黑客味,但确实有效这不是我需要的朋友,这与我现在使用的类似。你可以单独调暗状态栏,请参阅onCreateView()中的崩溃我的应用程序
if (Build.VERSION.SDK_INT >= 23) {
           val color: Int = R.color.black_transparent
           view.foreground = ColorDrawable(resources.getColor(color, resources.newTheme()))
     buttonRegisterEvent.isEnabled = false