Fondo alfa en FAB hecho clic

Estoy usando la biblioteca https://github.com/futuresimple/android-floating-action-button para crear los botones fab que funciona bastante bien. He intentado varias bibliotecas, pero ninguno utiliza el efecto utilizado en la mayoría de la aplicación con un fab (o aplicaciones de Google como mantener, bandeja de entrada) que cuando el fab se hace clic en el fondo de toda la aplicación se convierte en semi-transparente blanco o negro, depende. No puedo encontrar ninguna manera de hacerlo. ¿Es posible tener un ejemplo o algo así para hacer este tipo de efecto? Puedes ver lo que quiero decir en esta imagen: Introduzca aquí la descripción de la imagen

El fondo semi-negro

<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" > <RelativeLayout android:id="@+id/content_frame" android:layout_width="match_parent" android:layout_height="wrap_content" > <include android:id="@+id/toolbar" layout="@layout/toolbar" /> </RelativeLayout> <RelativeLayout android:id="@+id/semi_white_bg" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@color/white_semi_transparent" android:visibility="gone" > </RelativeLayout> <RelativeLayout android:id="@+id/listFrame" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_below="@+id/content_frame" android:visibility="gone" > <TextView android:id="@+id/status" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="@color/cabinet_color" android:fontFamily="sans-serif" android:gravity="center_vertical" android:paddingBottom="8dp" android:paddingLeft="16dp" android:paddingRight="16dp" android:paddingTop="8dp" android:textColor="#fff" android:textSize="17sp" android:visibility="gone" /> <android.support.v7.widget.RecyclerView android:id="@android:id/list" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_below="@+id/status" android:clipToPadding="false" android:scrollbars="vertical" /> <LinearLayout android:id="@android:id/empty" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerInParent="true" android:orientation="vertical" > <ImageView android:id="@+id/emptyImage" android:layout_width="96dp" android:layout_height="96dp" android:layout_gravity="center_horizontal" android:layout_marginBottom="16dp" android:scaleType="fitXY" android:src="?empty_image" /> <TextView android:id="@+id/emptyText" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_horizontal" android:layout_marginLeft="16dp" android:layout_marginRight="16dp" android:fontFamily="sans-serif-light" android:gravity="center" android:lineSpacingMultiplier="1.4" android:paddingBottom="16dp" android:text="@string/no_files" android:textColor="?empty_text" android:textSize="22sp" /> </LinearLayout> </RelativeLayout> <ProgressBar android:id="@android:id/progress" style="?android:progressBarStyle" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerInParent="true" android:indeterminateOnly="true" /> </RelativeLayout> 

Este es mi layout.xml, pero parece que no funciona en absoluto como i want.Seems que no se superponen a toda la vista, pero sólo los colores lo que quiere ..

Me gustó tu pregunta

Esta biblioteca no le permitirá establecer un evento de clic de botón, puede que tenga que cambiar el código de la biblioteca por su cuenta, utilice esta idea: Use Relatie o framelayout y agregue ese fondo negro o imagen detrás de FAB.

Ahora en la clase de biblioteca FloatingActionsMenu.class encuentra y comenta este código:

 //mAddButton.setOnClickListener(new OnClickListener() //{ // @Override // public void onClick(View v) // { // toggle(); // } //}); 

A continuación, agregue este método en esa clase,

 public void setAddButtonClickListener(OnClickListener listener) { mAddButton.setOnClickListener(listener); } 

Defina el oyente de clics en su actividad como

 OnClickListener listener = new OnClickListener() { @Override public void onClick(View v) { if (floatingActionMenuButton.isExpanded()) {//make the background visible } else {//make the background invisible } floatingActionMenuButton.toggle(); } }; 

Y pasarlo a FAB

 floatingActionMenuButton.setAddButtonClickListener(listener); 

Construir biblioteca y proyecto , Espero que esto ayude!

Me pareció que esta es la solución más fácil en mi opinión, y funciona perfectamente:

 fam.setOnFloatingActionsMenuUpdateListener(new FloatingActionsMenu.OnFloatingActionsMenuUpdateListener() { @Override public void onMenuExpanded() { dimmedBackground.setVisibility(View.VISIBLE); } @Override public void onMenuCollapsed() { dimmedBackground.setVisibility(View.GONE); } }); 

Debe incluir su actividad en un FrameLayout. FrameLayout debe tener 2 hijos

  • Contenido de la actividad
  • Otro Framelayout contiene FloatingActionsMenu

Aquí está el fragmento de código correspondiente.

 <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:fab="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="in.city.bytes.view.MainActivity"> <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <!-- other content in the activity --> </LinearLayout> <FrameLayout android:id="@+id/frame_layout" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@color/white_overlay"> <!-- floating action menu with buttons --> </FrameLayout> 

En su actividad, cambie el alfa de frame_layout cuando se hace clic en el menú FAB. También he escrito un blog explicándolo. http://www.rishabhsinghal.in/implement-floating-action-button-similar-to-inbox-by-gmail-or-evernote/

  • Android Push Notificación del dispositivo a otros dispositivos
  • ¿Cómo puedo cero-ise una clave secreta en java?
  • No se han podido leer los descriptores de los archivos de entrada desde el paquete
  • Android Ver agregar niño
  • Cómo ocultar la clave pública en android?
  • Registro personalizado para la aplicación de Android
  • RegEx para encontrar URL en HTML tarda 25 segundos en Java / Android
  • Android / Java - ¿Cómo puedo llamar a una función en un archivo * .java separado?
  • ¿Es necesario establecer los oyentes de la interfaz Fragment a null en detach?
  • Android - Acceso a la base de datos en línea SQlite
  • Java.io.IOException: Error en la solicitud HTTP, estado HTTP: 500 (ksoap2)
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.