El botón recortado no recibe la entrada táctil

Tengo un FAB que reside entre dos diseños. Usando el margen negativo junto con android:clipChildren and android:clipToPadding ambos establecidos en false Puedo producir este pequeño botón agradablemente colocado:

Introduzca aquí la descripción de la imagen

Ahora, el problema es que la mitad inferior de la FAB no está recibiendo la entrada táctil o en otra palabra: no se puede hacer clic. He intentado jugar con android:elevation asegurándose de que se encuentra en el valor más alto Z posible, pero el problema sigue siendo. Mientras tanto, la mitad superior está funcionando bien.

Introduzca aquí la descripción de la imagen

Estoy un poco atrapado en esto, ¿alguien podría ayudarme en qué hacer? A continuación se muestra mi XML para el diseño, en caso de que lo necesite.

 <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:fab="http://schemas.android.com/apk/res-auto" android:id="@+id/rl_root" android:layout_width="match_parent" android:layout_height="match_parent" android:clipChildren="false" android:clipToPadding="false"> <id.ridsatrio.taggr.widgets.ObservableScrollView xmlns:android="http://schemas.android.com/apk/res/android" xmlns:fab="http://schemas.android.com/apk/res-auto" android:id="@+id/sv_content" android:layout_width="match_parent" android:layout_height="match_parent" android:clipChildren="false" android:clipToPadding="false"> <RelativeLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:background="?android:attr/windowBackground" android:clipChildren="false" android:clipToPadding="false" android:focusable="true" android:focusableInTouchMode="true"> <id.ridsatrio.taggr.widgets.SquaredImageView android:id="@+id/iv_details_header" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_alignParentTop="true" android:adjustViewBounds="true" android:background="?android:attr/selectableItemBackground" android:clickable="true" android:contentDescription="Album Art Image" android:elevation="@dimen/elevation_none" android:focusable="true" android:scaleType="centerCrop" android:src="@drawable/def_album_art" /> <View android:id="@+id/v_anchor" android:layout_width="match_parent" android:layout_height="@dimen/details_header_height" android:layout_below="@+id/iv_details_header" android:elevation="@dimen/elevation_low" /> <LinearLayout android:id="@+id/ll_track_fields" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_below="@+id/v_anchor" android:orientation="vertical"> ... </LinearLayout> <View android:id="@+id/v_divider" android:layout_width="match_parent" android:layout_height="@dimen/details_section_divider_height" android:layout_below="@id/ll_track_fields" android:layout_marginLeft="@dimen/details_section_divider_margin_start" android:layout_marginTop="@dimen/item_horizontal_margin_xlarge" android:background="@color/dividers_light" /> <LinearLayout android:id="@+id/ll_album_fields" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_below="@id/v_divider" android:orientation="vertical"> ... </LinearLayout> <RelativeLayout android:id="@+id/rl_header" android:layout_width="match_parent" android:layout_height="@dimen/details_header_height" android:layout_gravity="center_horizontal" android:background="@color/primary" android:clipChildren="false" android:clipToPadding="false" android:elevation="@dimen/elevation_low"> ... <com.melnykov.fab.FloatingActionButton android:id="@+id/fab_details" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:layout_alignParentLeft="true" android:layout_marginBottom="@dimen/details_header_fab_margin_bottom" android:layout_marginLeft="@dimen/details_header_fab_margin_start" android:background="?android:attr/selectableItemBackground" android:elevation="@dimen/elevation_medium" android:src="@drawable/ic_action_down" fab:fab_colorNormal="@color/primary_dark" fab:fab_colorPressed="@color/primary" fab:fab_type="mini" /> </RelativeLayout> </RelativeLayout> </id.ridsatrio.taggr.widgets.ObservableScrollView> ... </RelativeLayout> 

Cualquier ayuda sería muy apreciada. Si necesita más detalles sobre esto, también me gustaría proporcionar más.

¡Gracias por adelantado!


Edit : Gracias a MoshErsan , finalmente pude conseguir este trabajo. Aquí está mi XML trabajo en caso de que alguien encuentre el mismo problema que el mío:

 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:fab="http://schemas.android.com/apk/res-auto" android:id="@+id/rl_root" android:layout_width="match_parent" android:layout_height="match_parent" android:clipChildren="false" android:clipToPadding="false"> <id.ridsatrio.taggr.widgets.ObservableScrollView xmlns:android="http://schemas.android.com/apk/res/android" xmlns:fab="http://schemas.android.com/apk/res-auto" android:id="@+id/sv_content" android:layout_width="match_parent" android:layout_height="match_parent" android:clipChildren="false" android:clipToPadding="false"> <RelativeLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:background="?android:attr/windowBackground" android:clipChildren="false" android:clipToPadding="false" android:focusable="true" android:focusableInTouchMode="true"> <id.ridsatrio.taggr.widgets.SquaredImageView android:id="@+id/iv_details_header" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_alignParentTop="true" android:adjustViewBounds="true" android:background="?android:attr/selectableItemBackground" android:clickable="true" android:contentDescription="Album Art Image" android:elevation="@dimen/elevation_none" android:focusable="true" android:scaleType="centerCrop" android:src="@drawable/def_album_art" /> <View android:id="@+id/v_anchor" android:layout_width="match_parent" android:layout_height="@dimen/details_header_height" android:layout_below="@+id/iv_details_header" android:elevation="@dimen/elevation_low" /> <LinearLayout android:id="@+id/ll_track_fields" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_below="@+id/v_anchor" android:orientation="vertical"> ... </LinearLayout> <View android:id="@+id/v_divider" android:layout_width="match_parent" android:layout_height="@dimen/details_section_divider_height" android:layout_below="@id/ll_track_fields" android:layout_marginLeft="@dimen/details_section_divider_margin_start" android:layout_marginTop="@dimen/item_horizontal_margin_xlarge" android:background="@color/dividers_light" /> <LinearLayout android:id="@+id/ll_album_fields" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_below="@id/v_divider" android:orientation="vertical"> ... </LinearLayout> <RelativeLayout android:id="@+id/rl_header" android:layout_width="match_parent" android:layout_height="@dimen/details_header_height" android:layout_gravity="center_horizontal" android:background="@color/primary" android:clipChildren="false" android:clipToPadding="false" android:elevation="@dimen/elevation_low"> ... </RelativeLayout> <com.melnykov.fab.FloatingActionButton android:id="@+id/fab_details" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignBottom="@+id/rl_header" android:layout_alignLeft="@+id/rl_header" android:layout_marginBottom="@dimen/details_header_fab_margin_bottom" android:layout_marginLeft="@dimen/details_header_fab_margin_start" android:background="?android:attr/selectableItemBackground" android:elevation="@dimen/elevation_medium" android:src="@drawable/ic_action_down" fab:fab_colorNormal="@color/primary_dark" fab:fab_colorPressed="@color/primary" fab:fab_type="mini" /> </RelativeLayout> </id.ridsatrio.taggr.widgets.ObservableScrollView> ... </RelativeLayout> 

Si hay algo que aprender de aquí es lo siguiente: Configurar android:clipChilden a false permitirá que dicha vista dibuje fuera de su diseño padre, pero cualquier entrada táctil estaría restringida a los límites de los padres.

Debe mover su índice FAB Z en el diseño para que esté en la parte superior de las otras views en la pantalla, por lo que cuando se produce el evento táctil, el FAB debe recibir el evento táctil antes de que aparezcan otras vistas.

Y para entender por qué no recibe eventos táctiles en la parte inferior de FAB, eso porque android:clipChildren="false" así que en realidad los límites de los padres es más pequeño que eso pero el sorteo pasa fuera de lado, así que cuando el Touch se recibe primero al padre, luego intenta desviarlo al niño deseado y el evento táctil debe estar dentro de los límites de los padres, por lo que la parte inferior de FAB está fuera de los límites del padre y el evento táctil no es para él.

  • Cómo usar onclicklistener para ver la cuadrícula
  • Creación de una cuadrícula como diseño en Android
  • Error al agregar tema personalizado a la aplicación
  • Cómo generar un entero con los métodos de TextView?
  • Barra de herramientas y Fragmento
  • Android: Uso de StreetViewPanoramaView en XML
  • intento androide no activar
  • La generación de Gradle falla debido a la entrada duplicada en strings.xml
  • Deshabilitar elementos de vista de lista con selector y isEnabled ()
  • ¿Cómo eliminar la barra de acción azul en Android?
  • Cómo encontrarViewById () un elemento @android: id / list en una actividad de Android?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.