2015-09-18 54 views
16

ContentProvider ile çalmak için basit bir uygulama yazıyorum, bir ContentProvider, bir ana aktivite, ContentResolver'ı kullanarak ContentProvider komutlarını ileten bir sınıf var. GUI'de sadece db'de saklanan tüm öğeleri görüntülemek istiyorum. Bu projeyi sıfırdan oluşturdum ve Etkinliği oluştururken, ana düzen bir AppBarLayout ile bir CoordinatorLayout'a sahipti ve bu iyi bir ListView yarattım ve her şey, AppBarLayout listview'ın ilk listesinin altında yer alan ListView ile çakışması dışında çalışır AppBarLayout tarafından saklanıyor. enter image description hereAndroid AppBarLayout örtüşen liste görünümü

benim ListView android:layout_below kullanmaya çalıştı ama benim ListView AppBarLayout altında daha sonra android:layout_marginTop kullanırsak, çalışmıyor ama bu çözüm güzel bulmak değil.

AppBarLayout altında ListView'a sahip olmak için temiz ve kolay bir yol yok mu? Benim activity_main düzeni altında

:

<?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" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:background="@color/holo_light_background" 
    android:fitsSystemWindows="true" 
    tools:context=".MainActivity"> 

    <android.support.design.widget.AppBarLayout 
     android:id="@+id/bar" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:theme="@style/AppTheme.AppBarOverlay"> 

     <android.support.v7.widget.Toolbar 
      android:id="@+id/toolbar" 
      android:layout_width="match_parent" 
      android:layout_height="?attr/actionBarSize" 
      android:background="?attr/colorPrimary" 
      android:theme="@style/AppTheme.AppBarOverlay" 
      app:popupTheme="@style/AppTheme.PopupOverlay" /> 
    </android.support.design.widget.AppBarLayout> 


    <ListView 
     android:id="@+id/list" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:layout_below="@id/bar"/> 


    <android.support.design.widget.FloatingActionButton ...> 

    <android.support.design.widget.FloatingActionButton ...> 

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

XML'inizi yeterince göstermiyor, tüm düzen dosyasını paylaşmıyorsunuz. – Booger

+3

Ayrıca, daha sonra 1 FAB'INIZA sahip olmamalısınız! – Booger

+1

@Booger aslında tüm xml'dir. Son satır eksikti, ekledim ve tüm bu yüzdeyi tanımlamayı vermiyorum. 2 kayan düğmenin kullanımıyla ilgili olarak, sanırım haklısınız, google yalnızca bir tane yüzer düğme kullanmanızı öneriyor, ancak bazen 2 kayan düğmeyi kullanıyorlar [https://www.google.com/design/spec/components/buttons-floating-action- button.html # düğmeleri-kayan-eylem-düğmesi-geçişler], benim için gerçek değil –

cevap

34

Basit emin için çalışacak, alternatif bir yoldur

+1

Eğer "layout_behavior" öğesini ListView'a eklemem gerektiğini kastetmişseniz haklısınız.) –

+1

@OLeeCsobert Çalışıyorsa, sadece Lollipop ve üzerinde çalışacaktır. Bu noktaya kadar istenen davranışı elde etmek için kullanılan iç içe geçmiş bir kaydırma desteği yoktu. Destek kütüphanesi aracılığıyla bu yeteneğe sahip olduğundan RecyclerView'a geçmenizi öneririm. –

+0

@Eugen Pechanec, yorumunuz için teşekkür ederim, aslında kendime sorduğum bir soru: ListView'i sadece RecyclerView ürününü kullanmamıza mı gerek var? –

0

yerine ListView RecyclerView kullanmak için ListView için

app:layout_behavior="@string/appbar_scrolling_view_behavior" 

eklemek ........

VEYA

kullanım: Açıkçası sadece Lollipop üzerinde çalışacak

 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) 
      { 
       listView.setNestedScrollingEnabled(true); 
      } 

.

İlgili konular