Nie mogę wyświetlić pływającego przycisku akcji (FAB), aby pojawił się we właściwej pozycji. Chcę, aby pojawiła się między nagłówkiem a pierwszym elementem w szufladzie nawigacji.Nie można umieścić pływającego przycisku akcji (FAB) między nagłówkiem a elementami w oknie DrawerLayout przy użyciu RecyclerView
Obecnie mam go do stawienia się w prawym dolnym rogu nagłówka, a nie na górze linii pomiędzy elementami 1 i 2 (1 elementu = nagłówku & 2-ej = pierwsza pozycja w recyklingu).
Moja aplikacja jest przy użyciu następujących elementów AppCompat:
- AppCompat-v7: 23.0.0
- recyclerview-v7: 23.0.0
- design: 23.0.0
Używam szuflady nav, ale nie mogę korzystać z NavigationView, ponieważ potrzebuję dostosować pozycje elementów i nie ładować prostego menu.
Jak wiadomo, szuflada naprawdę nie jest 2 różnymi kontrolkami. Nagłówek jest w rzeczywistości elementem "0" w oknie RecyclerView. Nie wiem, czy to robi różnicę.
Oto mój obecny xml dla nagłówka/„0 widzenia w 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>
myślę, że mam fab w niewłaściwym położeniu/pliku. Oto xml dla szuflady.
<?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>
POMOC !!!!!
Normalnie, nie należy umieszczać FAB wewnątrz szuflady. FAB służy do promowania pozytywnych działań. Ale szuflada jest przeznaczona do nawigacji! – makata
Uzgodnione. Myślę, że jest to właściwe w tej sytuacji. Chcę umieścić menu opcji (sort). Mogę dodać go do dolnej części szuflady, ale myślę, że wygląda lepiej i ma większy sens jako FAB. Wszelkie pomysły, jak to zrobić? – JustLearningAgain
Nie ma możliwości, że widok może znajdować się poza widokiem, w którym się znajduje. Myślę, że trzeba by przenieść nagłówek poza widok recyklingu do 'AppBarLayout'. – tachyonflux