1

recycleviewとviewpagerを含むxmlレイアウトのスクロールを実現しようとしていますが、nestedScrollViewはビューをスクロールしません。RecycleViewとViewPagerを使用したNestestedScrollViewはスクロールアップされません。


レイアウトファイル。

<android.support.v4.widget.SwipeRefreshLayout 
    android:id="@+id/swipe_refresh" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    app:layout_behavior="@string/appbar_scrolling_view_behavior"> 

    <android.support.v4.widget.NestedScrollView 
     android:id="@+id/nested_scroll" 
     android:layout_width="wrap_content" 
     android:layout_height="match_parent" 
     android:fillViewport="true" 
     > 


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


      <RelativeLayout 
       android:layout_width="match_parent" 
       android:layout_height="@dimen/dimen_200"> 


       <android.support.v4.view.ViewPager 
        android:id="@+id/viewpager_media" 
        android:layout_width="match_parent" 
        android:layout_height="wrap_content" /> 


       <RelativeLayout 
        android:id="@+id/viewPagerIndicator" 
        android:layout_width="match_parent" 
        android:layout_height="wrap_content" 
        android:layout_alignParentBottom="true" 
        android:gravity="center" 
        android:padding="@dimen/dimen_10"> 

        <LinearLayout 
         android:id="@+id/viewPagerCountDots" 
         android:layout_width="wrap_content" 
         android:layout_height="wrap_content" 
         android:layout_centerVertical="true" 
         android:gravity="center" 
         android:orientation="horizontal" /> 


       </RelativeLayout> 


      </RelativeLayout> 

      <android.support.v7.widget.RecyclerView 
       android:id="@+id/rc_media" 
       android:layout_width="match_parent" 
       android:layout_height="match_parent" 
       app:layout_behavior="@string/appbar_scrolling_view_behavior"/> 
     </LinearLayout> 

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

Javaファイル


mediaAdapter = new MediaDiscoverAdapter(getActivity(), mediaCallbackListener); 
    discoverBinding.rcMedia.setNestedScrollingEnabled(false); 
    discoverBinding.nestedScroll.setFillViewport(true); 
    discoverBinding.rcMedia.setAdapter(mediaAdapter); 
    layoutManager = new StickyHeaderLayoutManager(); 
    layoutManager.setAutoMeasureEnabled(true); 
    discoverBinding.rcMedia.setLayoutManager(layoutManager); 

答えて

0

私はStackOverFlowの助けを借りて解決策を見つけ出します。私はちょうどので、今のレイアウトは...

mainLayout.xml

<data> 

    <variable 
     name="MediaDiscoverFragmentNew" 
     type="com.hpc.fragments.media.MediaDiscoverFragmentNew" /> 
</data> 


<android.support.v4.widget.SwipeRefreshLayout 
    android:id="@+id/swipe_refresh" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    app:layout_behavior="@string/appbar_scrolling_view_behavior"> 


    <android.support.v7.widget.RecyclerView 
     android:id="@+id/rc_media" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" /> 


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

のように見える getItemViewTypeを使用して行項目として RecycleViewViewpager一部を作り、 NestedScrollViewを削除しました

であり、2つの別個のiすべての商品の並び順:raw_media_top.xml Viewpager、残りののraw_media.xmlです。

 if(viewType == HEADER_VIEW) { 
     RawMediaTopBinding mediaTopBinding = 
     DataBindingUtil.inflate(mLayoutInflater, R.layout.raw_media_top, parent, false); 
     mediaTopBinding.setMediaDiscoverAdapterNew(this); 
     return new HeaderViewHolder(mediaTopBinding); 
    } else { 
     RawMediaBinding inspirationItemsBinding = DataBindingUtil.inflate(mLayoutInflater, R.layout.raw_media, parent, false); 
     inspirationItemsBinding.setMediaDiscoverAdapterNew(this); 
     return new ItemViewHolder(inspirationItemsBinding); 
    } 

乾杯!

関連する問題