Diseño de material: cómo establecer transparencia para el botón de acción flotante de Android

Mi pregunta está relacionada con ésta .

Cuando abro el NavigationDrawer, el botón flotante está en la parte superior de él pero tiene que estar abajo.

Trato de hacerlo así:

@Override public void onDrawerSlide(View drawerView, float slideOffset) { Log.i(TAG , " inner onDrawerSlide"); super.onDrawerSlide(drawerView, slideOffset); fabButton.setAlpha(25); float alpha = 0.2f; AlphaAnimation alphaUp = new AlphaAnimation(alpha, alpha); alphaUp.setFillAfter(true); fabButton.startAnimation(alphaUp); syncState(); } 

Y así:

  @Override public void onDrawerSlide(View drawerView, float slideOffset) { super.onDrawerClosed(view); invalidateOptionsMenu(); fabButton.setAlpha(255); syncState(); } 

Nada funcionó para mí. Cual puede ser la solución ?

Mi diseño:

 <mobapply.freightexchange.customviews.FragmentNavigationDrawer xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/drawer_layout" android:layout_width="match_parent" android:layout_height="match_parent"> <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:fitsSystemWindows="true" android:orientation="vertical"> <!-- The ActionBar --> <include layout="@layout/toolbar" android:layout_width="match_parent" android:layout_height="wrap_content" /> <!-- The main content view --> <FrameLayout android:id="@+id/flContent" android:layout_width="match_parent" android:layout_height="match_parent" /> </LinearLayout> <!-- The navigation drawer --> <ListView android:id="@+id/lvDrawer" android:layout_width="match_parent" android:divider="@null" android:dividerHeight="0dp" android:layout_height="match_parent" android:layout_gravity="start" android:choiceMode="singleChoice" android:background="#FFFFFF" android:cacheColorHint="@android:color/transparent" /> 

FragmentNavigationDrawer es la costumbre DrawerLayout

Desde la documentación de Android de setAlpha (float alpha) (desde la API 11):

Establece la opacidad de la vista. Este es un valor de 0 a 1, donde 0 significa que la vista es completamente transparente y 1 significa que la vista es completamente opaca.

Usted está intentando fijarla al valor 25 o 255 🙂

Esto debería ocultarlo con una animación agradable:

 public void onDrawerSlide(View drawerView, float slideOffset) { super.onDrawerSlide(drawerView, slideOffset); invalidateOptionsMenu(); fabButton.setAlpha(1 - slideOffset); syncState(); } 

O bien, podría deslizarlo fuera de vista:

 public void onDrawerSlide(View drawerView, float slideOffset) { super.onDrawerSlide(drawerView, slideOffset); invalidateOptionsMenu(); fabButton.setTranslationX(slideOffset * 100); syncState(); } 

Si la posición del fab es problema entonces lo hace draggable. Aquí está el código para eso

 private FloatingActionButton fab; float dX; float dY; int lastAction; fab = (FloatingActionButton) findViewById(R.id.fab); fab.setOnTouchListener(this); @Override public boolean onTouch(View view, MotionEvent event) { switch (event.getActionMasked()) { case MotionEvent.ACTION_DOWN: dX = view.getX() - event.getRawX(); dY = view.getY() - event.getRawY(); lastAction = MotionEvent.ACTION_DOWN; break; case MotionEvent.ACTION_MOVE: view.setY(event.getRawY() + dY); view.setX(event.getRawX() + dX); lastAction = MotionEvent.ACTION_MOVE; break; case MotionEvent.ACTION_UP: if (lastAction == MotionEvent.ACTION_DOWN) { Intent intent = new Intent(Main.this, Cart.class); startActivity(intent); Toast.makeText(this, "Clicked!", Toast.LENGTH_SHORT).show(); } break; default: return false; } return true; } 

Tengo que trabajar con esta línea de código, pero puede tener un problema con el cambio en la orientación del dispositivo.

 public void onDrawerSlide(View drawerView, float slideOffset) { super.onDrawerSlide(drawerView, slideOffset); fab.setAlpha(1-slideOffset); } 
  • ¿Cómo puedo cambiar el tamaño de texto del elemento NavigationView?
  • Configuración del relleno de la barra de estado en NavigationView en Android
  • Cajón de navegación debajo de la barra de herramientas
  • Borde de desplazamiento de Android Navigation Drawer
  • TabHost muestra contenido una vez (onCreate)
  • Gestor de navegación Android mejores prácticas
  • ¿Cómo evitar la recreación de fragmentos cuando se selecciona de NavigationDrawer?
  • Android - Cómo cambiar fragmentos en el cajón de navegación
  • ¿Ha cambiado el título en el cambio de orientación?
  • El efecto de sombra superpuesto permanece en NavigationView del cajón de navegación
  • ¿Cómo abrir un nuevo fragmento del cajón de navegación?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.