ScrollView或NestedScrollView内部的ConstraintLayout不会滚动

时间:2019-08-16 17:18:25

标签: android android-constraintlayout android-scrollview android-nestedscrollview

我对ConstraintLayout还是陌生的,并且正在尝试将UI转换为自适应布局以支持不同的屏幕尺寸。但是,当内部布局为ConstraintLayout时,我的ScrollView滚动出现了麻烦。即使当我将ScrollView更改为NestedScrollView时,它仍然不会滚动。我尝试了几种解决方案,其中许多提出了相同的问题,但似乎都没有奏效。

<android.support.v4.widget.NestedScrollView
     android:id="@+id/list"
     android:layout_width="0dp"
     android:layout_height="0dp"
     android:layout_marginBottom="5dp"
     android:fillViewport="true"
     app:layout_constrainedHeight="true"
     app:layout_constraintBottom_toTopOf="@+id/logo"
     app:layout_constraintStart_toStartOf="parent"
     app:layout_constraintEnd_toEndOf="parent"
     app:layout_constraintBottom_toBottomOf="parent"
     app:layout_constraintTop_toBottomOf="@+id/refresh_text">

          <android.support.constraint.ConstraintLayout
               android:id="@+id/innerLayout"
               android:layout_width="match_parent"
               android:layout_height="match_parent"
               app:layout_constraintEnd_toEndOf="parent"
               app:layout_constraintStart_toStartOf="parent"
               app:layout_constraintTop_toTopOf="parent">

               <android.support.constraint.ConstraintLayout
                   android:id="@+id/innerLayout2"
                   android:layout_width="0dp"
                   android:layout_height="0dp"
                   android:background="@color/light_gray"
                   app:layout_constraintBottom_toTopOf="@+id/key_constraint_layout"
                   app:layout_constraintEnd_toEndOf="parent"
                   app:layout_constraintHeight_percent=".1"
                   app:layout_constraintStart_toStartOf="parent"
                   app:layout_constraintTop_toTopOf="parent">

                   <TextView
                       android:id="@+id/status_date_text"
                       android:layout_width="wrap_content"
                       android:layout_height="match_parent"
                       android:gravity="center_vertical"
                       android:layout_marginTop="5dp"
                       android:layout_marginBottom="5dp"
                       android:paddingStart="10dp"
                       android:paddingEnd="10dp"
                       android:text="Status Date"
                       android:textSize="20sp"   
                       app:layout_constrainedHeight="true"
                       app:layout_constrainedWidth="true"
                       app:layout_constraintLeft_toLeftOf="parent"
                       app:layout_constraintTop_toTopOf="parent" />

                  <TextView
                      android:id="@+id/status_date_value"
                      android:layout_width="wrap_content"
                      android:layout_height="match_parent"
                      android:paddingStart="10dp"
                      android:paddingEnd="10dp"
                      android:text="-------"
                      android:gravity="end|center_vertical"
                      android:textSize="20sp"
                      app:layout_constrainedHeight="true"
                      app:layout_constrainedWidth="true"
                      app:layout_constraintHorizontal_bias="0.70"
                      app:layout_constraintLeft_toLeftOf="parent"
                      app:layout_constraintRight_toRightOf="parent"
                      app:layout_constraintTop_toTopOf="parent" />
          </android.support.constraint.ConstraintLayout>
          <!--Other inner layouts are children of innerLayout based on innerLayout2 -->
     </android.support.constraint.ConstraintLayout>
<android.support.v4.widget.NestedScrollView>

我在做什么错了?

1 个答案:

答案 0 :(得分:0)

这可能是导致您出现问题的原因:

<android.support.constraint.ConstraintLayout
     android:id="@+id/innerLayout"
     android:layout_width="match_parent"
     android:layout_height="match_parent"

滚动视图的单个子代应始终具有固定高度或wrap_content高度。

滚动视图的想法是,它们容纳的单个孩子太大,无法单独显示在屏幕上。如果您将单个子级定义为match_parent的高度,则无需滚动,因为该子级不大于滚动视图。