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:
El fondo semi-negro
- Youtube API v3 buscar videos, recuperar el título y url
- Índice 0 Requerido con un tamaño de 0 Error en SQLITE DB
- Protección de los puntos finales de Google App Engine
- Android - descargar el archivo JSON de url
- BaseGame Util no se puede resolver con un tipo
<?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 ..
- Descargar imagen a través de la función Parse Cloud Code
- Crear un controlador personalizado de finalización / devolución de llamada para devolver objetos después de que se completa una solicitud HTTP
- Editar mediante programación las propiedades de build.prop en Android
- Http://10.0.2.2 funciona en el emulador de Android pero no en el dispositivo android utilizado como emulador
- ¿Cómo podemos cambiar la imagen de un botón de widget?
- Cómo obtener un valor aleatorio de una matriz de cadenas en android?
- La entrada de recursos ya está definida
- Permiso para escribir en la tarjeta SD
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/
- Descargar un sitio web a una cadena
- Android: Persistencia de la sesión de servidor mediante cookie al realizar llamadas HTTP