2015-08-27 18 views
9

kullanarak DrawerLayout içinde başlık ve öğeler arasında Eylem Düğmesi (FAB) Yüzer yapılamıyor. NAV çekmecemde başlık ve ilk öğe arasında görünmesini istiyorum.Ben Yüzer Eylem Düğmesi (FAB) doğru konumda görünmesini alamayan RecyclerView

enter image description here

Şu anda, başlığının sağ alt köşesinde görünmesini var ve NOT 1. ve 2. unsurları arasındaki hat (1 eleman = başlık & 2 eleman üstünde = ilk öğe recyclerview içinde).

Uygulamam aşağıdaki AppCompat öğeleri kullanıyor

:

  • AppCompat-v7: 23.0.0
  • recyclerview-v7: 23.0.0
  • tasarım: 23.0.0

Bir nav çekmecesi kullanıyorum ancak Navigasyon Görünümü'nü kullanamıyorum çünkü ürün girişlerini kişiselleştirmem ve basit bir menü yüklemem gerekiyor. Bildiğiniz gibi

, çekmece gerçekten 2 farklı kontroller olduğunu. Üstbilgi, RecyclerView öğesinde aslında '0' öğesidir. Bunun bir fark yaratıp yaratmadığını bilmiyorum. Ben yanlış konum/dosyasında FAB olabileceğini düşünüyorum

 <?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> 

:

Aşağıda başlık/"RecyclerView 0 görünümü" için geçerli xml olduğunu. İşte çekmece için xml.

 <?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> 

YARDIM !!!!! içeren

+0

Normalde, bir Çekmece içine FAB yer olmamalıdır. FAB, teşvik edilmiş olumlu eylemler için kullanılır. Ancak çekmece navigasyon için tasarlanmıştır! – makata

+0

Anlaşıldı. Bu durumda uygun olduğunu düşünüyorum. Bir seçenekler menüsü (sıralar) yerleştirmek istiyorum. Onu çekmecenin altına ekleyebilirim ama daha iyi görünüyor ve bir FAB olarak daha mantıklı geliyor. Nasıl yapılacağı hakkında bir fikrin var mı? – JustLearningAgain

+0

Bir görünümün içinde göründüğü görünümün dışında kalmasının bir yolu yoktur. Sanırım, başlığınızı geri dönüştürücü görünümü dışında bir "AppBarLayout" öğesine taşımanız gerekir. – tachyonflux

cevap

7

örnek çekmece parçası düzeni senin RecyclerView mevcut:

<android.support.design.widget.CoordinatorLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    android:id="@+id/main_content" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 

    <android.support.design.widget.AppBarLayout 
     android:id="@+id/appbar" 
     android:layout_width="match_parent" 
     android:layout_height="200dp"> 
     <View 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:background="#f00" 
      android:id="@+id/header"/> 
    </android.support.design.widget.AppBarLayout> 

    <android.support.v7.widget.RecyclerView 
     android:id="@+id/recyclerView" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:background="#ffffff" 
     android:scrollbars="vertical" 
     android:clickable="true" 
     android:focusable="true" 
     android:focusableInTouchMode="true" 
     app:layout_behavior="@string/appbar_scrolling_view_behavior"/> 

    <android.support.design.widget.FloatingActionButton 
     android:layout_height="wrap_content" 
     android:layout_width="wrap_content" 
     app:layout_anchor="@id/appbar" 
     app:layout_anchorGravity="bottom|right|end" 
     android:layout_margin="5dp" 
     android:clickable="true"/> 

</android.support.design.widget.CoordinatorLayout> 
+1

Güzel çözüm! 'FAB' için' layout_margin'ı telefon için '16dp' ve tabletler için' 24dp' olarak kullanmanızı öneririm –

İlgili konular