2015-07-15 36 views
9

Aşağıdaki düzende bir göz atın. Göreceksiniz ki, yüzer düğme aşağıya doğru çok uzak. Bunun nedeni, Araç Çubuğunun ve Sekmelerin gösterilmesi ve ViewPager'ın yüksekliğinin yanlış olmasıdır. Yani bir şekilde layout_height ile yanlış bir şey yapıyorum. Ama bunu nasıl düzeltebilirim?KoordinatörÖn üst üste binme

Açıklama: ViewPager ana içeriğidir ve ikinci sekmede bir ListView ve bir Google Map V2 içeren bir parça içerir. Düzen XML var

floating button too low

: Burada

<?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.support.design.widget.AppBarLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"> 

     <android.support.v7.widget.Toolbar 
       android:id="@+id/toolbar" 
       android:layout_width="match_parent" 
       android:layout_height="?attr/actionBarSize" 
       android:background="?attr/colorPrimary" 
       app:layout_scrollFlags="scroll|enterAlways" /> 

     <android.support.design.widget.TabLayout 
      android:id="@+id/sliding_tabs" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content"/> 

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

    <android.support.v4.view.ViewPager 
      android:id="@+id/pager_list_views" 
      app:layout_behavior="@string/appbar_scrolling_view_behavior" 
      android:layout_width="match_parent" 
      android:layout_height="fill_parent"> 
    </android.support.v4.view.ViewPager> 

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

ilk sekmede fragmanı (liste) için düzeni aşağıdaki gibidir:

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

    <ListView 
       android:id="@+id/preview_list" 
       app:layout_behavior="@string/appbar_scrolling_view_behavior" 
       android:layout_width="match_parent" 
       android:layout_height="match_parent" 
       android:choiceMode="singleChoice" 
       android:orientation="vertical" /> 

    <android.support.design.widget.FloatingActionButton 
      android:id="@+id/action_add" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_gravity="end|bottom" 
      android:layout_margin="16dp" 
      android:src="@mipmap/ic_add_white_48dp" /> 

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

Sadece emin olmak için; FAB ile sorun değil. Bu resme bak. Benzer bir düzen. Bir ToolBar ve bir ViewPager ile tüm detay girişlerini kaydıran bir CoordinatorLayout (bu nedenle sekmelere gerek yoktur). Ve yine, iç görünüş çok uzun gibi görünüyor (ToolBar ile aynı yükseklik).

enter image description here

+0

Lütfen FAB – doubleA

+0

parçasını içeren parça yerleşimini gönderin. Güncellenmiş gönderiye göz atın – Matthias

+0

Tabii ki FAB'nin altına kenar boşluğu ekleyebilirsin ve bunu getireceğini bildiğim kadarıyla değil. Src görüntüsünü kaldırdığınızda ve varsayılanı kullandığınızda ne olur? – doubleA

cevap

3
  1. Sen zaten android.support.v7.widget.RecyclerView kullandığınız rağmen android.support.v7.widget.RecyclerView değil ListView
  2. kullanmak sahip% 100 emin olmalıdır build.gradle bağımlılıklarınızda compile 'com.android.support:recyclerview-v7:23.0.0' belirtin. Görüntüleyici sistem düğmelerinin çakıştığı aynı sorunla karşılaştım. Sadece bu bağımlılığı ekleyerek düzelttim. Ne olmak "koordine" için
+1

RecyclerView cehennem gibi bir arabadır – Matthias

+1

KoordinatörLayout ListView ile çalışmayacak Projelerimde RecyclerView kullanıyorum ve asla okumadım y yanlış kullanmıyorsanız hatalarla karşılaştı. –

+0

"RecyclerView" kullanımı benim için hile yaptı – Roman

1

şey vb AppBar, RecyclerView (API21 + veya diğer görünüm desteği iç içe kaydırma ListView Tamam) veya FAB,

dahil, direkt çocuk CoordinatorLayout olması gerekir ne zaman görünümü ofset olacak bu davranış uygulamak,

  1. ViewPager bir @string/appbar_scrolling_view_behavior sahiptir: En FAB ekranın dışına ofset neden

    nedeni, yani Kaydırma.

  2. ViewPager'un içine FAB'u koyarsınız. ViewPager değişti ofset zaman

Yani, ViewPager içindeki her şeyi birlikte ofset olacak (ekstra CoordinatorLayout ofset değişir için hiçbir yardım yoktur).

Bunu düzeltmek için ViewPager'un dışından CoordinatorLayout'u kullanmayın.

Veya:

  1. FABViewPager dışarı yüzden ViewPager ile kaydırma olmaz koyun.
  2. FAB, yalnızca sayfanızın bir kısmı ile çalışıyorsa, gerektiğinde hide().

BTW, tasarım kütüphanesini tanıtmak için çok iyi bir Uygulama, Cheesesquare Sample10 var.

İlgili konular