2015-12-25 19 views
6

voglio aggiungere Floating pulsante d'azione sulla recyclerview ma il problema è quando clicco su Floating Azione Pulsante voce Recyclerview ottenere cliccato come rimuovere questo problemaCliccando galleggiante ActionButton sulla destra rende oggetto RecyclerView ottenere cliccato

vedi sotto codice

<RelativeLayout 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    tools:context=".screens.ShowSubjectsFrag" 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    xmlns:tools="http://schemas.android.com/tools"> 
    <android.support.v7.widget.RecyclerView 
     android:id="@+id/MainList" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:layout_gravity="center"> 
    </android.support.v7.widget.RecyclerView> 
    <android.support.design.widget.FloatingActionButton 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:src="@android:drawable/ic_input_add" 
     app:layout_anchor="@id/MainList" 
     android:layout_margin="@dimen/fab_margin" 
     android:layout_alignParentBottom="true" 
     android:layout_alignParentRight="true" 
     android:layout_alignParentEnd="true" /> 
</RelativeLayout> 
+0

aggiungi attributo cliccabile al pulsante fluttuante xml – Amir

risposta

7

Scrivi la View#onClickListener per la FloatingActionButton nel Activity/Fragment, perché al momento il FloatingActionButton non è registrato per qualsiasi event. Aveva lo stesso problema Cheers

-1

Si prega di provare a utilizzare sotto codice nel tuo xml:

<RelativeLayout 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 

    <android.support.v7.widget.RecyclerView 
     android:id="@+id/MainList" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:layout_gravity="center"> 
    </android.support.v7.widget.RecyclerView> 

</RelativeLayout> 

<android.support.design.widget.FloatingActionButton 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:src="@android:drawable/ic_input_add" 
    app:layout_anchor="@id/MainList" 
    android:layout_margin="@dimen/fab_margin" 
    android:layout_alignParentBottom="true" 
    android:layout_alignParentRight="true" 
    android:layout_alignParentEnd="true" /> 

Mettere entrambe le viste in diversi layout in modo che possano essere correlate a diversi livelli z.

Per ulteriori informazioni, consultare le pratiche di progettazione here.

Grazie .. !!

+0

Questo non funzionerà. Non puoi avere due elementi radice nel file di layout. –

+0

@ Michael Peterson: Ci scusiamo per l'incomprensione qui. il codice fornito è solo una parte del file di layout. puoi metterlo un singolo gruppo di visualizzazione di root. – AndiGeeky

-1

Si utilizza RecyclerView all'interno di una RelativeLayout ed è stato impostato il suo width e height sia per match_parent! Fondamentalmente il tuo RecyclerView nasconde il tuo FloatingActionButton.

Se fossi in te, farei il seguente:

<RelativeLayout 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    tools:context=".screens.ShowSubjectsFrag" 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    xmlns:tools="http://schemas.android.com/tools"> 
    <android.support.v7.widget.RecyclerView 
     android:id="@+id/MainList" 
     android:layout_width="match_parent" 
     android:layout_height="300dp" <!-- Use a fixed height over here --> 
     android:layout_alignParentTop="true"> 
    </android.support.v7.widget.RecyclerView> 
    <android.support.design.widget.FloatingActionButton 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:src="@android:drawable/ic_input_add" 
     app:layout_anchor="@id/MainList" 
     android:layout_margin="@dimen/fab_margin" 
     android:layout_alignParentBottom="true" 
     android:layout_alignParentRight="true" 
     android:layout_alignParentEnd="true" /> 
</RelativeLayout> 

ho il sospetto che anche il layout_anchor non è necessaria. Prova a rimuoverlo pure. Indipendentemente da ciò, il problema principale mi sembra essere che il tuo RecyclerView nasconda il tuo FloatingActionButton. È possibile verificare lo stesso nell'area di progettazione (se si utilizza Android Studio).

Fammi sapere se è utile, altrimenti approfondirò ulteriormente!

+0

L'utilizzo di un'altezza fissa non è una buona soluzione a questo problema in generale. Porterà solo ad altri problemi di interfaccia utente, come l'elenco troppo corto su dispositivi più grandi. –

Problemi correlati