11

Saydam gezinme ve durum çubuklarını (API Level 19) kullanırken SwipeRefreshLayout'umu görünür hale getirme konusunda bir sorun yaşıyorum. Yani, şu anda durum çubuğunun altında (ekranın en üstünde), onun altında bir eylem çubuğu olmasını istiyorum.SwipeRefreshLayout, transparan durum çubuklarıyla ActionBar'ın arkasında gizli

ListView beklendiği gibi çalışıyor. Yani, içerik gezinme çubuklarının arkasında düzgün bir şekilde gösterilir ve durum çubuğunun veya eylem çubuğunun altında gizlenmez.

Bu durumda, android: fitsSystemWindows = "true" özelliğini göreli düzenime eklerseniz, SwipeRefreshLayout düzgün çalışır. Ancak, bunu yapmak benim liste görünümümü şeffaf gezinme çubuklarının altında görünmez kılar. Bunun yerine, gezinme çubukları arka planımın rengidir ve liste listemdeki içeriğin altında gösterilmesine izin vermez.

Şimdi nasıl kaldığını görmek için ListView'i nasıl alabilirim ve ayrıca SwipeRefreshLayout'umun görünür olmasını (ekranın üst kısmında, durum çubuğunun altında gizlenmek yerine) nasıl alabilirim?

<android.support.v4.widget.DrawerLayout 
     xmlns:android="http://schemas.android.com/apk/res/android" 
     xmlns:tools="http://schemas.android.com/tools" 
     android:id="@+id/drawer_layout" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent"> 

     <RelativeLayout 
      android:layout_width="fill_parent" 
      android:layout_height="fill_parent" 
      android:paddingTop="10dp" 
      android:background="#ccc" 
      android:clipToPadding="false"> 

      <android.support.v4.widget.SwipeRefreshLayout 
       android:id="@+id/swipe_container" 
       android:layout_width="match_parent" 
       android:layout_height="match_parent"> 

      <FrameLayout 
       android:id="@+id/container" 
       android:paddingLeft="@dimen/activity_horizontal_margin" 
       android:paddingRight="@dimen/activity_horizontal_margin" 
       android:layout_width="fill_parent" 
       android:layout_height="fill_parent" 
       android:background="#ccc"> 

       <ListView 
        android:layout_width="fill_parent" 
        android:layout_height="fill_parent" 
        android:id="@+id/listView" 
        android:paddingTop="10dp" 
        android:fitsSystemWindows="true" 
        android:clipToPadding="false" 
        android:divider="@android:color/transparent" 
        android:layout_gravity="left|top" /> 

       <TextView 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:textAppearance="?android:attr/textAppearanceLarge" 
        android:text="No Internet Connection" 
        android:id="@+id/noInternet" 
        android:textColor="@android:color/secondary_text_light" 
        android:layout_gravity="center" /> 

       <TextView 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:textAppearance="?android:attr/textAppearanceMedium" 
        android:text="Pull To Refresh" 
        android:translationY="20dp" 
        android:id="@+id/nointernetSub" 
        android:textColor="@android:color/secondary_text_light" 
        android:layout_gravity="center" /> 

      </FrameLayout> 

      </android.support.v4.widget.SwipeRefreshLayout> 

     </RelativeLayout> 

    <fragment android:id="@+id/navigation_drawer" 
     android:layout_width="@dimen/navigation_drawer_width" 
     android:layout_height="match_parent" 
     android:layout_gravity="start" 
     android:name="com.package.app.NavigationDrawerFragment" 
     tools:layout="@layout/fragment_navigation_drawer" /> 

</android.support.v4.widget.DrawerLayout> 
+1

Bu sorunuzun yana uzun zaman oldu, ama belki hala bir cevap gerek:

Aşağıda benim düzenidir. Şuna bir bakın: http://stackoverflow.com/questions/24413680/swiperefreshlayout-behind-actionbar – Naroh

cevap

3

Ben bir farkla kullanarak öneriyoruz

android:layout_marginTop="?android:attr/actionBarSize" 
İlgili konular