Java 单击晶圆厂时使活动变暗

Java 单击晶圆厂时使活动变暗,java,android,Java,Android,我一直在尝试许多方法,以在单击我的FAB的onClickListener(FloatingActionButton)时使活动背景变暗 以下是我尝试的代码,它不起作用,因为我不确定“父级”是什么: m_fabContactOptions.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { isFabExpanded

我一直在尝试许多方法,以在单击我的FAB的onClickListener(FloatingActionButton)时使活动背景变暗

以下是我尝试的代码,它不起作用,因为我不确定“父级”是什么:

m_fabContactOptions.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            isFabExpanded = !isFabExpanded ;

            if (isFabExpanded ) {
                WindowManager wm = (WindowManager) getActivity().getSystemService(Context.WINDOW_SERVICE);
                WindowManager.LayoutParams p = (WindowManager.LayoutParams) parent.getLayoutParams();
                p.flags = WindowManager.LayoutParams.FLAG_DIM_BEHIND;
                p.dimAmount = 0.4f;
                wm.updateViewLayout(parent, p);
            }
            else {
                WindowManager wm = (WindowManager) getActivity().getSystemService(Context.WINDOW_SERVICE);
                WindowManager.LayoutParams p = (WindowManager.LayoutParams) parent.getLayoutParams();
                p.flags = WindowManager.LayoutParams.FLAG_DIM_BEHIND;
                p.dimAmount = 0.0f;
                wm.updateViewLayout(parent, p);
            }
        }
    });

若要设置活动dim,首先可以将id放入xml文件

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              android:layout_width="match_parent"
              android:layout_height="match_parent"
              android:orientation="vertical"
              android:id="@+id/parentLayout">
你可以得到这个元素的布局参数

LayoutParams params=parent.getLayoutParams();

若要设置活动dim,首先可以将id放入xml文件

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              android:layout_width="match_parent"
              android:layout_height="match_parent"
              android:orientation="vertical"
              android:id="@+id/parentLayout">
你可以得到这个元素的布局参数

LayoutParams params=parent.getLayoutParams();
试试这个代码

WindowManager.LayoutParams layoutParams = getWindow().getAttributes();
layoutParams.dimAmount = 0.75f;
getWindow().addFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND);
getWindow().setAttributes(layoutParams);
试试这个代码

WindowManager.LayoutParams layoutParams = getWindow().getAttributes();
layoutParams.dimAmount = 0.75f;
getWindow().addFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND);
getWindow().setAttributes(layoutParams);

对我有效的方法是创建一个线性布局,填充整个屏幕,将alpha设置为0.5(50%不透明度),并在默认情况下将其隐藏。当按钮被点击时,我只是让它可见,当我需要隐藏它时,我将其移除

您的代码如下所示:

<LinearLayout
        android:id="@+id/llDim"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="@color/black"
        android:alpha="0.5"
        android:orientation="vertical"
        android:visibility="gone"/>

对我有效的方法是创建填充整个屏幕的线性布局,将alpha设置为0.5(50%不透明度),并在默认情况下将其隐藏。当按钮被点击时,我只是让它可见,当我需要隐藏它时,我将其移除

您的代码如下所示:

<LinearLayout
        android:id="@+id/llDim"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="@color/black"
        android:alpha="0.5"
        android:orientation="vertical"
        android:visibility="gone"/>


我收到以下错误:FrameLayout$LayoutParams无法强制转换为android.view.WindowManager$LayoutParams检查此错误:FrameLayout$LayoutParams无法强制转换为android.view.WindowManager$LayoutParams检查此错误