[英]android: RecyclerView inside a ScrollView
我有一个包装在LinearLayout
的RecyclerView
,它可以按预期工作。 我可以看到RecyclerView
中的所有数据都已填充。 到目前为止,一切都很好。
当我将LinearLayout
包装在ScrollView
, RecyclerView
变为空白。 我在RecyclerView
内看不到任何东西。 为什么? 如何使这项工作。
该页面是ViewPagerIndicator
中的选项卡之一,因此该选项卡中的所有内容都必须位于ScrollView
。
感谢您的所有帮助。
为ScrollView设置此属性,
android:fillViewport="true"
ScrollView将扩展自身以填充内容
检查实施后,原因如下。 如果将RecyclerView
放入ScrollView
,则在测量步骤中未指定其高度(因为ScrollView
允许任何高度),因此,其高度等于最小高度(根据实现方式),该高度显然为零。
您可以通过以下几种方法解决此问题:
RecyclerView
设置一定的高度 ScrollView.fillViewport
设置为true
RecyclerView
保留在ScrollView
之外。 我认为,到目前为止,这是最好的选择。 如果RecyclerView
高度不受限制(将其放入ScrollView
时就是这种情况),则所有Adapter的视图都在垂直方向上具有足够的位置,并且可以立即全部创建。 再也没有视图回收,这有点违反了RecyclerView
的用途。 除此之外,没有任何帮助:
mRecyclerView.addOnItemTouchListener(new RecyclerView.OnItemTouchListener() {
@Override
public boolean onInterceptTouchEvent(RecyclerView rv, MotionEvent e) {
int action = e.getAction();
switch (action) {
case MotionEvent.ACTION_MOVE:
rv.getParent().requestDisallowInterceptTouchEvent(true);
break;
}
return false;
}
@Override
public void onTouchEvent(RecyclerView rv, MotionEvent e) {
}
@Override
public void onRequestDisallowInterceptTouchEvent(boolean disallowIntercept) {
}
});
我在那里得到这个答案。 谢谢Piyush Gupta 。
希望这可以帮助 :
将此行添加到您的recyclerView xml中:
android:nestedScrollingEnabled="false"
试试看,recyclerview将在scrollview内以灵活的高度平滑滚动。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.