事实上,我正在寻找一种模仿FAB收件箱的方法。当用户按下红色按钮时,应该出现一个不透明视图和一个菜单。因为图片更有意义,请参见以下图片。
提前感谢。
提前感谢。
将FloatingActionMenu
放置在FrameLayout
中,该布局将位于其他视图的顶部,并与父视图的宽高匹配。使用相同的边距将菜单向上提起并从右侧偏移。
将OnFloatingActionsMenuUpdateListener
设置为您的悬浮操作菜单。现在在方法中切换/替换帧布局背景颜色:
@Override
void onMenuExpanded(){
mFrameLayoutWrapper.setBackgroundColor(mAlpaWhite);
}
@Override
void onMenuCollapsed(){
mFrameLayoutWrapper.setBackgroundColor(Color.TRANSPARENT);
}
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:fab="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:text="Other View here"
android:textSize="50dp"
android:layout_centerHorizontal="true"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<View
android:id="@+id/background_dimmer"
android:visibility="gone"
android:background="#55000000"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
<com.getbase.floatingactionbutton.FloatingActionsMenu
android:id="@+id/multiple_actions"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentRight="true"
android:layout_alignParentEnd="true"
fab:fab_addButtonColorNormal="@color/white"
fab:fab_addButtonColorPressed="@color/white_pressed"
fab:fab_addButtonPlusIconColor="@color/half_black"
fab:fab_labelStyle="@style/menu_labels_style"
android:layout_marginBottom="16dp"
android:layout_marginRight="16dp"
android:layout_marginEnd="16dp">
<com.getbase.floatingactionbutton.FloatingActionButton
android:id="@+id/action_a"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
fab:fab_colorNormal="@color/white"
fab:fab_title="Action A"
fab:fab_colorPressed="@color/white_pressed"/>
</com.getbase.floatingactionbutton.FloatingActionsMenu>
在处理浮动按钮的Activity或Fragment中
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_map);
setFloatingButtonControls();
}
private void setFloatingButtonControls(){
this.bckgroundDimmer = findViewById(R.id.background_dimmer);
this.floatingActionsMenu = (FloatingActionsMenu) findViewById(R.id.multiple_actions);
this.floatingActionsMenu.setOnFloatingActionsMenuUpdateListener(new FloatingActionsMenu.OnFloatingActionsMenuUpdateListener() {
@Override
public void onMenuExpanded() {
bckgroundDimmer.setVisibility(View.VISIBLE);
}
@Override
public void onMenuCollapsed() {
bckgroundDimmer.setVisibility(View.GONE);
}
});
}
这将会产生你想要的效果。希望能对你有所帮助,它确实帮了我。:)
使用一个带有工具栏、浮动菜单、内容和相对布局的协调布局。将相对布局的背景颜色设置为白色透明,并将其可见性设置为Gone。设置“NoActionBar”主题,并在活动中使用工具栏代替操作栏。现在,每当您打开浮动菜单时,将相对布局的可见性设置为可见,并在关闭时设置回Gone。