Impossibile visualizzare il Floating Action Button (FAB) nella posizione corretta. Voglio che appaia tra l'intestazione e il primo elemento nel mio cassetto nav.Impossibile posizionare il Floating Action Button (FAB) tra l'intestazione e gli elementi in DrawerLayout utilizzando RecyclerView
Attualmente, li ho a comparire in basso a destra della testata e non sulla parte superiore della linea di demarcazione tra il 1 ° e 2 ° elementi (1 ° elemento = intestazione & secondo elemento = prima voce in recyclerview).
La mia applicazione sta usando i seguenti elementi: AppCompat
- appcompat-v7: 23.0.0
- recyclerview-v7: 23.0.0
- disegno: 23.0.0
Uso un cassetto di navigazione ma non riesco a utilizzare NavigationView perché è necessario personalizzare le voci dell'articolo e non caricare un menu semplice.
Come sapete, il cassetto non è in realtà 2 controlli diversi. L'intestazione è in realtà l'elemento '0' in RecyclerView. Non so se questo faccia la differenza.
Ecco il mio attuale xml per l'intestazione/"0 vista in RecyclerView":
<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="@dimen/navdrawer_image_height">
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/navDrawerHeaderView"
android:layout_width="match_parent"
android:layout_height="@dimen/navdrawer_image_height">
<ImageView
android:id="@+id/navdrawer_image"
android:layout_width="wrap_content"
android:layout_height="@dimen/navdrawer_image_height"
android:contentDescription="@string/cd_navdrawer_image"
android:scaleType="centerCrop"
android:src="@drawable/bg_material_design" />
<de.hdodenhof.circleimageview.CircleImageView
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/app_image"
android:layout_width="@dimen/navdrawer_user_picture_size"
android:layout_height="@dimen/navdrawer_user_picture_size"
android:src="@drawable/ic_launcher"
android:layout_marginTop="16dp"
android:layout_marginLeft="16dp"
android:layout_marginStart="16dp"
app:border_width="2dp"
app:border_color="#FF000000"/>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/appNameTextView"
android:text="App Name"
android:textStyle="bold"
android:layout_marginLeft="16dp"
android:layout_marginStart="16dp"
android:layout_marginBottom="16dp"
android:layout_alignParentBottom="true"
android:textColor="@android:color/white"/>
</RelativeLayout>
<android.support.design.widget.FloatingActionButton
android:id="@+id/fab"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="16dp"
android:clickable="true"
android:src="@drawable/button_account"
app:layout_anchor="@id/navDrawerHeaderView"
app:layout_anchorGravity="bottom|right|end"
app:elevation="4dp"/>
</android.support.design.widget.CoordinatorLayout>
Penso che potrei avere il FAB nel percorso/file sbagliato. Ecco l'xml per il cassetto.
<?xml version="1.0" encoding="utf-8"?>
<android.support.v4.widget.DrawerLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/drawerLayout"
android:layout_height="match_parent"
android:layout_width="match_parent"
android:fitsSystemWindows="true">
<!-- Content layout -->
<LinearLayout
android:layout_height="match_parent"
android:layout_width="match_parent"
android:orientation="vertical">
<include
android:id="@+id/toolbar"
layout="@layout/tool_bar"/>
<FrameLayout
android:id="@+id/contentFrame"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/init_background">
</FrameLayout>
</LinearLayout>
<!-- Pages -->
<android.support.v7.widget.RecyclerView
android:id="@+id/recyclerView"
android:layout_width="320dp"
android:layout_height="match_parent"
android:layout_gravity="left"
android:background="#ffffff"
android:scrollbars="vertical"
android:clickable="true"
android:focusable="true"
android:focusableInTouchMode="true">
</android.support.v7.widget.RecyclerView>
</android.support.v4.widget.DrawerLayout>
AIUTO !!!!!
Normalmente, non dovrebbe porre FAB all'interno di un cassetto. FAB è utilizzato per azioni positive promosse. Ma il cassetto è destinato alla navigazione! – makata
concordato. Penso che sia appropriato in questa situazione. Voglio posizionare un menu di opzioni (di sorta). Potrei aggiungerlo al fondo del cassetto, ma penso che abbia un aspetto migliore e abbia più senso come FAB. Qualche idea su come farlo? – JustLearningAgain
Non c'è modo che una vista possa essere al di fuori di una vista in cui si trova. Penso che avresti bisogno di spostare la tua intestazione all'esterno del recyclerview in un 'AppBarLayout'. – tachyonflux