繁体   English   中英

android:ScrollView中的RecyclerView

[英]android: RecyclerView inside a ScrollView

我有一个包装在LinearLayoutRecyclerView ,它可以按预期工作。 我可以看到RecyclerView中的所有数据都已填充。 到目前为止,一切都很好。

当我将LinearLayout包装在ScrollViewRecyclerView变为空白。 我在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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM