2016-03-17 4 views
0

Я пытаюсь реализовать ресайклинг с разворачивающейся панелью инструментов. Я следовал this tutorial, но до сих пор мой RecyclerView не появляется. Тем не менее, все остальные виды видны.Почему мой RecyclerView не появляется, когда он вложен внутри NestedScrollView?

Вот мой файл макета:

<?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:fitsSystemWindows="true" 
    android:orientation="vertical"> 

    <android.support.design.widget.AppBarLayout 
     android:id="@+id/app_bar_layout" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:fitsSystemWindows="true" 
     android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"> 

     <android.support.design.widget.CollapsingToolbarLayout 
      android:id="@+id/collapsing_toolbar" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:fitsSystemWindows="true" 
      app:contentScrim="@color/colorPrimary" 
      app:expandedTitleMarginEnd="64dp" 
      app:expandedTitleMarginStart="48dp" 
      app:layout_scrollFlags="scroll|exitUntilCollapsed"> 

      <android.support.v7.widget.Toolbar 
       android:id="@+id/toolbar" 
       android:layout_width="match_parent" 
       android:layout_height="?attr/actionBarSize" 
       app:layout_collapseMode="pin" /> 

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

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

    <android.support.v4.widget.NestedScrollView 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:clipToPadding="false" 
     app:layout_behavior="@string/appbar_scrolling_view_behavior"> 

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

      <android.support.v7.widget.RecyclerView 
       android:id="@+id/listing_recycler_view" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       tools:listitem="@layout/item_post" /> 

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

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

    <TextView 
     android:id="@+id/errorView" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:text="@string/listing_loading_error" 
     android:visibility="gone" 
     tools:text="Error" /> 

    <ProgressBar 
     android:id="@+id/loadingView" 
     style="?android:attr/progressBarStyleLarge" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_gravity="center" 
     android:visibility="gone" /> 

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

Индикатор прогресса и TextView ошибка действительно появляются, когда я переключать их из кода, но вид переработчик не будет отображаться.

+0

Из моего опыта вы на самом деле не нужен 'NestedScrollView', любой макет с' приложения: layout_behavior = "@ строка/appbar_scrolling_view_behavior" 'будет делать. Попробуйте изменить «NestedScrollView» на «FrameLayout» и поместите свои «RecyclerView», «TextView» и «ProgressBar» в «FrameLayout». – Bryan

ответ

0

set recyclerview to фактический dp высота. Это сработало для меня.

<android.support.v7.widget.RecyclerView 
        android:id="@+id/listing_recycler_view" 
        android:layout_width="match_parent" 
        android:layout_height="wrap_content" 
        app:layout_behavior="@string/appbar_scrolling_view_behavior" 
        tools:listitem="@layout/item_post" /> 
+0

Это не работает. В любом случае, я бы предпочел бы, чтобы он был «полноразмерным». – manabreak

+0

обновленный ответ. Дайте мне знать, если это сработает для вас –

Смежные вопросы