android - 滚动视图不适用于多个垂直回收器视图
问题描述
我有多个(4)个垂直回收器视图,它们包含在约束布局中。约束布局包含在滚动视图中。问题是当项目被添加到一个回收器视图(比如说第一个)时,屏幕不会滚动到它下面的文本视图和回收器视图。它仅显示第一个回收器视图,并且仅滚动到该回收器视图的末尾。下面是我的布局代码。两者之间有一个滚动视图,这就是问题所在。
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools">
<data>
<variable
name="dailyDietViewModel"
type="com.*.*.*.DailyDietViewModel" />
</data>
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/dailyDietLayout"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".dailydiet.DailyDietFragment">
<com.google.android.material.textview.MaterialTextView
android:id="@+id/caloriesTextView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="24dp"
android:layout_marginTop="16dp"
android:fontFamily="@font/roboto"
android:text="@string/calories"
android:textColor="@android:color/black"
android:textSize="16sp"
android:textStyle="bold"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<com.google.android.material.textview.MaterialTextView
android:id="@+id/caloriesValueTextView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
android:fontFamily="@font/roboto"
android:text="@{dailyDietViewModel.calories}"
app:layout_constraintStart_toEndOf="@id/caloriesTextView"
app:layout_constraintTop_toTopOf="@id/caloriesTextView" />
<com.google.android.material.textview.MaterialTextView
android:id="@+id/caloriesExceededTextView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="24dp"
android:fontFamily="@font/roboto"
android:text="@string/limit_exceeded"
android:textColor="@color/red"
android:visibility="gone"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="@id/caloriesValueTextView" />
<ProgressBar
android:id="@+id/caloriesProgressBar"
style="?android:attr/progressBarStyleHorizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="24dp"
android:layout_marginEnd="24dp"
android:progress="@{dailyDietViewModel.caloriesProgress}"
android:progressBackgroundTint="@color/primaryLightColor"
android:progressTint="@color/primaryLightColor"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/caloriesTextView" />
<com.google.android.material.textview.MaterialTextView
android:id="@+id/proteinTextView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="24dp"
android:layout_marginTop="8dp"
android:fontFamily="@font/roboto"
android:text="@string/protein"
android:textColor="@android:color/black"
android:textSize="16sp"
android:textStyle="bold"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/caloriesProgressBar" />
<com.google.android.material.textview.MaterialTextView
android:id="@+id/proteinValueTextView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
android:fontFamily="@font/roboto"
android:text="@{dailyDietViewModel.protein}"
app:layout_constraintStart_toEndOf="@id/proteinTextView"
app:layout_constraintTop_toTopOf="@id/proteinTextView" />
<com.google.android.material.textview.MaterialTextView
android:id="@+id/proteinExceededTextView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="24dp"
android:fontFamily="@font/roboto"
android:text="@string/limit_exceeded"
android:textColor="@color/red"
android:visibility="gone"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="@id/proteinValueTextView" />
<ProgressBar
android:id="@+id/proteinProgressBar"
style="?android:attr/progressBarStyleHorizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="24dp"
android:layout_marginEnd="24dp"
android:progress="@{dailyDietViewModel.proteinProgress}"
android:progressBackgroundTint="@color/yellow"
android:progressTint="@color/yellow"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/proteinTextView" />
<com.google.android.material.textview.MaterialTextView
android:id="@+id/carbsTextView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="24dp"
android:layout_marginTop="8dp"
android:fontFamily="@font/roboto"
android:text="@string/carbohydrates"
android:textColor="@android:color/black"
android:textSize="16sp"
android:textStyle="bold"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/proteinProgressBar" />
<com.google.android.material.textview.MaterialTextView
android:id="@+id/carbsValueTextView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
android:fontFamily="@font/roboto"
android:text="@{dailyDietViewModel.carbs}"
app:layout_constraintStart_toEndOf="@id/carbsTextView"
app:layout_constraintTop_toTopOf="@id/carbsTextView" />
<com.google.android.material.textview.MaterialTextView
android:id="@+id/carbsExceededTextView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="24dp"
android:fontFamily="@font/roboto"
android:text="@string/limit_exceeded"
android:textColor="@color/red"
android:visibility="gone"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="@id/carbsValueTextView" />
<ProgressBar
android:id="@+id/carbsProgressBar"
style="?android:attr/progressBarStyleHorizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="24dp"
android:layout_marginEnd="24dp"
android:progress="@{dailyDietViewModel.carbsProgress}"
android:progressBackgroundTint="@color/purple"
android:progressTint="@color/purple"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/carbsTextView" />
<com.google.android.material.textview.MaterialTextView
android:id="@+id/fatsTextView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="24dp"
android:layout_marginTop="8dp"
android:fontFamily="@font/roboto"
android:text="@string/fats"
android:textColor="@android:color/black"
android:textSize="16sp"
android:textStyle="bold"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/carbsProgressBar" />
<com.google.android.material.textview.MaterialTextView
android:id="@+id/fatsValueTextView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
android:fontFamily="@font/roboto"
android:text="@{dailyDietViewModel.fats}"
app:layout_constraintStart_toEndOf="@id/fatsTextView"
app:layout_constraintTop_toTopOf="@id/fatsTextView" />
<com.google.android.material.textview.MaterialTextView
android:id="@+id/fatsExceededTextView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="24dp"
android:fontFamily="@font/roboto"
android:text="@string/limit_exceeded"
android:textColor="@color/red"
android:visibility="gone"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="@id/fatsValueTextView" />
<ProgressBar
android:id="@+id/fatsProgressBar"
style="?android:attr/progressBarStyleHorizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="24dp"
android:layout_marginEnd="24dp"
android:progress="@{dailyDietViewModel.fatsProgress}"
android:progressBackgroundTint="@color/orange"
android:progressTint="@color/orange"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/fatsTextView" />
<View
android:id="@+id/divider"
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="?android:attr/listDivider"
android:backgroundTint="@color/primaryDarkColor"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/fatsProgressBar" />
<com.google.android.material.imageview.ShapeableImageView
android:id="@+id/slideImageView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="@{() -> dailyDietViewModel.visibilitychange()}"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/fatsProgressBar"
app:srcCompat="@drawable/ic_up_arrow" />
<ScrollView
android:id="@+id/mealItemsScrollView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
android:layout_marginTop="8dp"
android:layout_marginEnd="8dp"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/slideImageView">
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/constraintLayoutinsideScrollView"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<com.google.android.material.textview.MaterialTextView
android:id="@+id/breakfastTextView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/light_grey"
android:drawableEnd="@drawable/ic_add_button"
android:drawableTint="@android:color/black"
android:fontFamily="@font/roboto"
android:gravity="center"
android:paddingTop="4dp"
android:paddingBottom="4dp"
android:text="@string/breakfast"
android:textAppearance="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox.Dense"
android:textColor="@android:color/black"
android:textSize="18sp"
android:textStyle="bold"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/breakfastRecyclerView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"
app:layout_constraintTop_toBottomOf="@id/breakfastTextView"
android:nestedScrollingEnabled="false"
tools:itemCount="5" />
<com.google.android.material.textview.MaterialTextView
android:id="@+id/lunchTextView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:background="@color/light_grey"
android:drawableEnd="@drawable/ic_add_button"
android:drawableTint="@android:color/black"
android:fontFamily="@font/roboto"
android:gravity="center"
android:paddingTop="4dp"
android:paddingBottom="4dp"
android:text="@string/lunch"
android:textAppearance="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox.Dense"
android:textColor="@android:color/black"
android:textSize="18sp"
android:textStyle="bold"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/breakfastRecyclerView" />
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/lunchRecyclerView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"
app:layout_constraintTop_toBottomOf="@id/lunchTextView"
android:nestedScrollingEnabled="false"
tools:itemCount="5" />
<com.google.android.material.textview.MaterialTextView
android:id="@+id/snacksTextView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:background="@color/light_grey"
android:drawableEnd="@drawable/ic_add_button"
android:drawableTint="@android:color/black"
android:fontFamily="@font/roboto"
android:gravity="center"
android:paddingTop="4dp"
android:paddingBottom="4dp"
android:text="@string/snacks"
android:textAppearance="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox.Dense"
android:textColor="@android:color/black"
android:textSize="18sp"
android:textStyle="bold"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/lunchRecyclerView" />
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/snacksRecyclerView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"
app:layout_constraintTop_toBottomOf="@id/snacksTextView"
android:nestedScrollingEnabled="false"
tools:itemCount="5" />
<com.google.android.material.textview.MaterialTextView
android:id="@+id/dinnerTextView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:background="@color/light_grey"
android:drawableEnd="@drawable/ic_add_button"
android:drawableTint="@android:color/black"
android:fontFamily="@font/roboto"
android:gravity="center"
android:paddingTop="4dp"
android:paddingBottom="4dp"
android:text="@string/dinner"
android:textAppearance="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox.Dense"
android:textColor="@android:color/black"
android:textSize="18sp"
android:textStyle="bold"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/snacksRecyclerView" />
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/dinnerRecyclerView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"
app:layout_constraintBottom_toBottomOf="parent"
android:nestedScrollingEnabled="false"
tools:itemCount="5" />
</androidx.constraintlayout.widget.ConstraintLayout>
</ScrollView>
</androidx.constraintlayout.widget.ConstraintLayout>
</layout>
```
解决方案
推荐阅读
- wso2is - 如何在 wso2 api 管理器中添加额外的标题和值?
- php - 在 symfony 4 中使用 pdo 会话时,有什么方法可以将自定义列添加到会话表中?
- nsis - 如何限制 NSIS 中的文本框字符数
- javascript - 检查数组是否包含两个特定值
- sql - Solr4.10.3中的值如何求和
- c++ - 如何在 Qt 中获取字符串的一部分?
- ios - 如何在 10 个按钮中快速创建 1 个带有颜色的微光渐变
- javascript - 如何在JavaScript中将数字从字符串转换为带有以下零的浮点数?
- c# - 将动画添加到具有不同 scriptableObjects 数据的单个预制件?
- c++ - cv::UMat 的 m2=(m1==v) 的有效替换?