这是我到目前为止所做的。创建了FloatingActionButton。现在当按下+图标时,后面应该有一个半透明层。
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<com.getbase.floatingactionbutton.FloatingActionsMenu
android:id="@+id/actionMenu"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentRight="true"
android:layout_marginBottom="60dp"
fab:fab_addButtonColorNormal="@color/primary"
fab:fab_addButtonColorPressed="@color/primary_dark"
fab:fab_addButtonPlusIconColor="#ffffff">
<com.getbase.floatingactionbutton.FloatingActionButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="openAudio"
fab:fab_colorNormal="#EA1E63"
fab:fab_colorPressed="#EA1E63"
fab:fab_icon="@drawable/ic_action_mic" />
</com.getbase.floatingactionbutton.FloatingActionsMenu>
</RelativeLayout
答案 0 :(得分:2)
试试这个。
floatingActionMenuButton.setOnMenuToggleListener(new FloatingActionMenu.OnMenuToggleListener() {
@Override
public void onMenuToggle(boolean opened) {
if (opened) {
//menu opened
} else {
//menu closed
}
}
});
答案 1 :(得分:1)
使用setBackgroundResource或setBackgroundColor。我认为首先很简单。
第二个将int作为参数。因此,只需将十六进制颜色(例如#55000000)转换为十进制,它也可以正常工作。
答案 2 :(得分:1)
我有同样的问题,我按照以下方式修复了它。
我添加了一个相对布局,它将在宽度和高度上匹配父级。 将其背景颜色设置为黑色,并将alpha设置为所需的不透明度。
<RelativeLayout
android:id="@+id/obstructor"
android:visibility="invisible"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:alpha="0.75"
android:background="@android:color/black">
</RelativeLayout>
然后在展开和折叠的菜单项上使其可见且不可见。
mFabMenu = (FloatingActionsMenu) findViewById(R.id.multiple_actions);
final RelativeLayout obstrucuterView = (RelativeLayout) findViewById(R.id.obstructor);
obstrucuterView.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
if (obstrucuterView.getVisibility() == View.VISIBLE) {
mFabMenu.collapse();
return true;
}
return false;
}
});
mFabMenu.setOnFloatingActionsMenuUpdateListener(new FloatingActionsMenu.OnFloatingActionsMenuUpdateListener() {
@Override
public void onMenuExpanded() {
if (obstrucuterView.getVisibility() == View.INVISIBLE)
obstrucuterView.setVisibility(View.VISIBLE);
}
@Override
public void onMenuCollapsed() {
if (obstrucuterView.getVisibility() == View.VISIBLE)
obstrucuterView.setVisibility(View.INVISIBLE);
}
});
希望这有帮助。
答案 3 :(得分:0)
还有另一个自定义库,它比您现在使用的更高级。
在此处 Clans floating Action Button
将此设置为true,它将解决您的问题。如果有帮助,请告诉我
fabPlusButton.setClosedOnTouchOutside(true);
答案 4 :(得分:0)
如果您使用的是Clans floating Action Button,那么如果它满足您的用例,那么fab:menu_backgroundColor
可能是您可以查看的内容。当然布局的宽度和高度都应该与父级匹配(这个解决方案对我有用)