ScrollView 在 CardView 中不起作用

ScrollView not working inside CardView

我已经搜索过了,none 的答案对我有帮助。

这是我的布局xml:

<android.support.v7.widget.CardView
        android:id="@+id/layout_building"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_marginTop="@dimen/_8dp"
        app:layout_constraintEnd_toStartOf="@+id/scrollview_nested_fragment_container"
        app:layout_constraintHorizontal_weight="1"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/views_container">

        <ScrollView
            android:layout_width="match_parent"
            android:layout_height="wrap_content">

        <LinearLayout
            android:id="@+id/layout_building_container"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical"/>

        </ScrollView>

    </android.support.v7.widget.CardView>

我正在通过代码动态地向 LinearLayout 添加子视图。我也曾尝试将 ScrollView 标记移动到包装 CardView 但仍然没有成功。这是 CardView 的限制还是有人知道对此的有效解决方案。

如果用NestedScrollView .

会更好

NestedScrollView is just like ScrollView, but it supports acting as both a nested scrolling parent and child on both new and old versions of Android.

<android.support.v4.widget.NestedScrollView
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        //Your CHILD Layout

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

仅供参考

你可以把你的CardView放在ScrollView下。

在 ScrollView

中设置此 属性
android:fillViewport="true" 

并设置 cardview 的高度以匹配父级或固定

好的,首先感谢大家提出的宝贵建议。实际问题在于 ConstraintLayout。所有需要做的就是向卡片视图添加约束 app:layout_constraintBottom_toBottomOf="parent" 并设置 android:layout_height="0dp"。 cardview 没有强制执行任何边界。与 LinearLayout 和 RelativeLayout 不同,它们默认将边界强制到它们的子视图。