单击 FAB 时使活动变暗



我一直在尝试许多解决方案,以便在单击我的 FAB(浮动操作按钮(的 onClickListener 时使活动背景变暗。

这是我尝试的代码不起作用,因为我不确定"父"是什么:

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);
}
}
});

对我有用的是创建一个填充整个屏幕的线性布局,并将 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"/>

如果要设置活动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">

在您的类中定义此布局,

LinearLayout parent = (LinearLayout) findViewById(R.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);

最新更新