2016-04-14 22 views
1

Android'de yüzer eylem düğmesi tutturmam gerekiyor, ancak sorun var: fab navigasyon görünümünde olacak İşte benim etkinlik_konumu düzenim. Gezinme çekmecesini içerir.Yüzen eylem düğmesi bağlantı noktası

<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/drawer_layout" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:background="@color/colorBackground"> 
    <!-- The main content view --> 
    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:orientation="vertical"> 

     <include 
      layout="@layout/toolbar_main" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content"/> 
     <FrameLayout 
      android:id="@+id/content_frame" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" /> 

    </LinearLayout> 
    <!-- The navigation drawer --> 
    <include 
     layout="@layout/nav_drawer" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_gravity="start"/> 
</android.support.v4.widget.DrawerLayout> 

Gezinme çekmecesi düzeni:

<?xml version="1.0" encoding="utf-8"?> 
<android.support.design.widget.CoordinatorLayout 
    android:id="@+id/clDrawer" 
    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="match_parent" 
    android:background="@color/colorPrimary"> 

    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:orientation="vertical"> 

     <android.support.design.widget.NavigationView 
      android:id="@+id/navView" 
      android:layout_width="wrap_content" 
      android:layout_height="match_parent" 
      android:layout_gravity="start" 
      app:menu="@menu/menu_drawer_view" 
      app:headerLayout="@layout/anav_header" 
      android:background="@color/colorPrimary2" 
      app:itemIconTint="@color/colorIcon" 
      app:itemTextColor="@color/colorIcon"/> 
    </LinearLayout> 


    <android.support.design.widget.FloatingActionButton 
     android:id="@+id/navFAB" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_margin="@dimen/activity_horizontal_margin" 
     android:clickable="true" 
     android:src="@drawable/plus_icon" 
     app:backgroundTint="@color/colorIcon" 
     app:layout_anchor="@id/headerLayout" 
     app:layout_anchorGravity="bottom|right|end" /> 

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

Ve benim anav_header navigasyon için görünüm yalnızca birkaç metin görünümü içeriyor. Başlığın botomuna, başlığın ana içeriği ile ND'nin ana içeriğine sabitlenmek için fab'a ihtiyacım var. Sorun, layout_anchor yalnızca başlık ve nav görünümü aynı düzende çalışıyorsa geçerlidir. navigationview özelliği headerLayout kullanıyorsa, layout_anchor çalışmaz. Ayrıca ben NavigationView.addHeaderView() kullanırsanız, o da çalışmıyor. ben bu şekilde

<include 
     layout="@layout/anav_header" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content"/> 

çalıştığını ANCAK farklı yerlerinde benzer başlık ve navigasyon görünümü bu hareketini navigasyon görünümü düzeninde başlık içerir edin. Ve onlara bir navigasyon çekmecesi gibi davranmalarını istiyorum. I need navigation drawer to lookes smth like that.

+0

sadece FloatingActionButton kodunuzu x2 ana içeriğinizde değil, ana içeriğinizde değil, ana içeriğinizde – Pavan

+1

@Pavan, yeh olarak koyun, ancak fab her zaman üstbilginin alt kısmında olacak ve asla başlık ve ana içerik düzenleri arasında yer almayacaktır. – TooLazy

+0

@TooLazy, "NavigationView" içinde başlık ve menü arasında FAB koymanın bir yolunu buldunuz mu? – Mussa

cevap

0

Yolumu buldum. İlk önce 'u kaldırdım ve LinearLayout ile başlık resmi LinearLayout ile ve LinearLayout statik menü öğeleriyle birlikte hemen ardından drawer_list ile birlikte drawer_header.xml ile değiştirdim.

<?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="match_parent" 
    android:background="@color/colorPrimary2"> 

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

     <LinearLayout 
      android:background="@color/colorPrimary2" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:orientation="vertical"> 

      <!-- <android.support.design.widget.NavigationView 
       android:id="@+id/navView" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:background="@color/colorPrimary2" 
       app:headerLayout="@layout/drawer_header" 
       app:itemIconTint="@color/colorIcon" 
       app:itemTextColor="@color/colorIcon" 
       app:menu="@menu/menu_drawer_view" />--> 
      <include 
       layout="@layout/drawer_header" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:layout_marginBottom="@dimen/activity_horizontal_margin"/> 
      <include 
       layout="@layout/layout_drawer_list" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" /> 

     </LinearLayout> 
    </ScrollView> 

    <android.support.design.widget.FloatingActionButton 
     android:id="@+id/navFAB" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_marginTop="@dimen/activity_horizontal_margin" 
     android:clickable="true" 
     android:src="@drawable/plus_icon" 
     app:backgroundTint="@color/colorIcon" 
     app:layout_anchor="@id/headerLayout" 
     app:layout_anchorGravity="bottom|right|end" /> 

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

Yani, ben LinearLayout aksi ikisi de kaydırdığınız başlık ve menü yapılmış, ama em birlikte ilerlemek gerekiyor. Üstbilgi veya menüde öğe eklemek için addView(View v)'u kullanabilirsiniz.

İlgili konular