2016-11-29 7 views
0

У меня есть две вкладки внутри ViewPager, и каждая вкладка содержит RecyclerView, которые в основном являются вертикальными списками ListView. Моя проблема в том, что я не могу прокручивать RecyclerViews по вертикали.Как прокрутить RecyclerView внутри ViewPager?

<com.myapplication.MyViewPager 
    android:layout_below="@+id/music_tabs" 
    android:id="@+id/music_switcher" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content"> 



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


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

</com.myapplication.MyViewPager> 

Вот MyViewPager

public class MyViewPager extends ViewPager { 

public MyViewPager(Context context, AttributeSet attrs) { 
    super(context, attrs); 
} 

@Override 
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { 

    int height = 0; 
    for(int i = 0; i < getChildCount(); i++) { 
     View child = getChildAt(i); 
     child.measure(widthMeasureSpec, MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED)); 
     int h = child.getMeasuredHeight(); 
     if(h > height) height = h; 
    } 

    heightMeasureSpec = MeasureSpec.makeMeasureSpec(height, MeasureSpec.EXACTLY); 

    super.onMeasure(widthMeasureSpec, heightMeasureSpec); 
} 
+1

отправьте свой код. –

+0

Посмотрите на это http://stackoverflow.com/questions/35082043/android-scrolling-issues-with-recyclerview-inside-a-viewpager –

ответ

2

Кажется, мой метод onMeasure вызывает проблемы. После его удаления проблема решена.

0

Как вы используете два recycleview и там высоту макета является обернуть содержимое, а не использовать этот код или определить layout_height в дп:

android:layout_height="250dp" 
1

Вы не можете измерить размер recyclerview заранее. Как и ожидалось после удаления onMeasure, он должен работать.

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