ScrollView 在约束布局内不起作用
ScrollView not working inside constraint layout
我在 ConstraintLayout 中有一个滚动视图。但 scrollview 在 ConstraintLayout 中不起作用。我尝试了 NestedScrollView 而不是 ScrollView 但它仍然无法正常工作。 ScrollView 与 LinearLayout 或 RelativeLayout 一起工作正常,但在 ConstraintLayout.I 中不起作用,将 android:layout_height 更改为 match_parent 和 wrap_content,但它不起作用。有什么问题?
<androidx.constraintlayout.widget.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
xmlns:app="http://schemas.android.com/apk/res-auto"
>
<include
android:id="@+id/other_toolbar_xml"
layout="@layout/other_toolbar_xml"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
/>
<ScrollView
android:layout_width="match_parent"
android:layout_height="0dp"
app:layout_constraintTop_toBottomOf="@id/other_toolbar_xml"
android:fillViewport="true"
tools:ignore="MissingConstraints"
>
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
>
<ImageView
android:id="@+id/img_content_xml"
android:layout_width="match_parent"
android:layout_height="170dp"
app:layout_constraintTop_toBottomOf="@id/other_toolbar_xml"
android:scaleType="fitXY"
tools:ignore="NotSibling"
/>
<TextView
android:id="@+id/title_content_xml"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toBottomOf="@id/img_content_xml"
android:layout_marginRight="16dp"
android:paddingLeft="16dp"
android:textDirection="rtl"
android:text="title"
android:textSize="17sp"
android:textColor="#1d1d1d"
/>
<TextView
android:id="@+id/content_content_xml"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toBottomOf="@id/title_content_xml"
android:layout_marginTop="20dp"
android:layout_marginRight="16dp"
android:layout_marginEnd="16dp"
android:paddingLeft="16dp"
android:textDirection="rtl"
android:text="content"
android:textColor="#1d1d1d"
/>
<ImageView
android:id="@+id/img_date_content_Xml"
android:layout_width="18dp"
android:layout_height="18dp"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toBottomOf="@id/content_content_xml"
android:layout_marginTop="20dp"
android:layout_marginRight="16dp"
android:layout_marginEnd="16dp"
android:layout_marginBottom="16dp"
android:src="@drawable/date"
/>
<TextView
android:id="@+id/date_content_xml"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintTop_toBottomOf="@id/content_content_xml"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintRight_toLeftOf="@id/img_date_content_Xml"
android:layout_marginTop="20dp"
android:layout_marginRight="8dp"
android:layout_marginEnd="8dp"
android:text="date"
android:textColor="#1d1d1d"
android:layout_marginBottom="16dp"
/>
<TextView
android:id="@+id/subject_content_xml"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintTop_toBottomOf="@id/content_content_xml"
app:layout_constraintLeft_toLeftOf="parent"
android:layout_marginTop="20dp"
android:layout_marginStart="16dp"
android:layout_marginLeft="16dp"
android:singleLine="true"
android:text="subject"
android:textColor="#1d1d1d"
/>
</androidx.constraintlayout.widget.ConstraintLayout>
</ScrollView>
</androidx.constraintlayout.widget.ConstraintLayout>
Firstly if you are using constraintlayout
as the parent layout so
you need to constrain child views properly.Scrollview
that you have defined is not constrained properly that's why scrollview
doesn't work.
这是我的代码:
<androidx.constraintlayout.widget.ConstraintLayout 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"
android:layout_width="match_parent"
android:layout_height="match_parent">
<include
android:id="@+id/other_toolbar_xml"
layout="@layout/toolbar_back"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize" />
<ScrollView
android:layout_width="0dp"
android:layout_height="0dp"
android:fillViewport="true"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/other_toolbar_xml"
tools:ignore="MissingConstraints">
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<ImageView
android:id="@+id/img_content_xml"
android:layout_width="match_parent"
android:layout_height="170dp"
android:scaleType="fitXY"
app:layout_constraintTop_toBottomOf="@id/other_toolbar_xml"
tools:ignore="NotSibling" />
<TextView
android:id="@+id/title_content_xml"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:layout_marginRight="16dp"
android:paddingLeft="16dp"
android:text="title"
android:textColor="#1d1d1d"
android:textDirection="rtl"
android:textSize="17sp"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toBottomOf="@id/img_content_xml" />
<TextView
android:id="@+id/content_content_xml"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:layout_marginEnd="16dp"
android:layout_marginRight="16dp"
android:paddingLeft="16dp"
android:text="content"
android:textColor="#1d1d1d"
android:textDirection="rtl"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toBottomOf="@id/title_content_xml" />
<ImageView
android:id="@+id/img_date_content_Xml"
android:layout_width="18dp"
android:layout_height="18dp"
android:layout_marginTop="20dp"
android:layout_marginEnd="16dp"
android:layout_marginRight="16dp"
android:layout_marginBottom="16dp"
android:src="@drawable/date"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toBottomOf="@id/content_content_xml" />
<TextView
android:id="@+id/date_content_xml"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:layout_marginEnd="8dp"
android:layout_marginRight="8dp"
android:layout_marginBottom="16dp"
android:text="date"
android:textColor="#1d1d1d"
app:layout_constraintRight_toLeftOf="@id/img_date_content_Xml"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toBottomOf="@id/content_content_xml" />
<TextView
android:id="@+id/subject_content_xml"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="16dp"
android:layout_marginLeft="16dp"
android:layout_marginTop="20dp"
android:singleLine="true"
android:text="subject"
android:textColor="#1d1d1d"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintTop_toBottomOf="@id/content_content_xml" />
</androidx.constraintlayout.widget.ConstraintLayout>
</ScrollView>
</androidx.constraintlayout.widget.ConstraintLayout>
您在 <ScrollView
标签中添加了 tools:ignore="MissingConstraints"
,因此您错过了一些限制条件。
有两种方法:
移除父级 ConstraintLayout 并使用 RelativeLayout 因为不需要 ConstraintLayout 只有两种布局。 (多用于复杂的view,方便看)
如果要使用ConstraintLayout,请给予适当的约束。您错过了如下左、右、下约束:
<ScrollView
android:layout_width="match_parent"
android:layout_height="0dp"
android:fillViewport="true"
app:layout_constraintTop_toBottomOf="@id/other_toolbar_xml"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" >
//....
</ScrollView>
我在 ConstraintLayout 中有一个滚动视图。但 scrollview 在 ConstraintLayout 中不起作用。我尝试了 NestedScrollView 而不是 ScrollView 但它仍然无法正常工作。 ScrollView 与 LinearLayout 或 RelativeLayout 一起工作正常,但在 ConstraintLayout.I 中不起作用,将 android:layout_height 更改为 match_parent 和 wrap_content,但它不起作用。有什么问题?
<androidx.constraintlayout.widget.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
xmlns:app="http://schemas.android.com/apk/res-auto"
>
<include
android:id="@+id/other_toolbar_xml"
layout="@layout/other_toolbar_xml"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
/>
<ScrollView
android:layout_width="match_parent"
android:layout_height="0dp"
app:layout_constraintTop_toBottomOf="@id/other_toolbar_xml"
android:fillViewport="true"
tools:ignore="MissingConstraints"
>
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
>
<ImageView
android:id="@+id/img_content_xml"
android:layout_width="match_parent"
android:layout_height="170dp"
app:layout_constraintTop_toBottomOf="@id/other_toolbar_xml"
android:scaleType="fitXY"
tools:ignore="NotSibling"
/>
<TextView
android:id="@+id/title_content_xml"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toBottomOf="@id/img_content_xml"
android:layout_marginRight="16dp"
android:paddingLeft="16dp"
android:textDirection="rtl"
android:text="title"
android:textSize="17sp"
android:textColor="#1d1d1d"
/>
<TextView
android:id="@+id/content_content_xml"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toBottomOf="@id/title_content_xml"
android:layout_marginTop="20dp"
android:layout_marginRight="16dp"
android:layout_marginEnd="16dp"
android:paddingLeft="16dp"
android:textDirection="rtl"
android:text="content"
android:textColor="#1d1d1d"
/>
<ImageView
android:id="@+id/img_date_content_Xml"
android:layout_width="18dp"
android:layout_height="18dp"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toBottomOf="@id/content_content_xml"
android:layout_marginTop="20dp"
android:layout_marginRight="16dp"
android:layout_marginEnd="16dp"
android:layout_marginBottom="16dp"
android:src="@drawable/date"
/>
<TextView
android:id="@+id/date_content_xml"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintTop_toBottomOf="@id/content_content_xml"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintRight_toLeftOf="@id/img_date_content_Xml"
android:layout_marginTop="20dp"
android:layout_marginRight="8dp"
android:layout_marginEnd="8dp"
android:text="date"
android:textColor="#1d1d1d"
android:layout_marginBottom="16dp"
/>
<TextView
android:id="@+id/subject_content_xml"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintTop_toBottomOf="@id/content_content_xml"
app:layout_constraintLeft_toLeftOf="parent"
android:layout_marginTop="20dp"
android:layout_marginStart="16dp"
android:layout_marginLeft="16dp"
android:singleLine="true"
android:text="subject"
android:textColor="#1d1d1d"
/>
</androidx.constraintlayout.widget.ConstraintLayout>
</ScrollView>
</androidx.constraintlayout.widget.ConstraintLayout>
Firstly if you are using
constraintlayout
as the parent layout so you need to constrain child views properly.Scrollview
that you have defined is not constrained properly that's why scrollview doesn't work.
这是我的代码:
<androidx.constraintlayout.widget.ConstraintLayout 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"
android:layout_width="match_parent"
android:layout_height="match_parent">
<include
android:id="@+id/other_toolbar_xml"
layout="@layout/toolbar_back"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize" />
<ScrollView
android:layout_width="0dp"
android:layout_height="0dp"
android:fillViewport="true"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/other_toolbar_xml"
tools:ignore="MissingConstraints">
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<ImageView
android:id="@+id/img_content_xml"
android:layout_width="match_parent"
android:layout_height="170dp"
android:scaleType="fitXY"
app:layout_constraintTop_toBottomOf="@id/other_toolbar_xml"
tools:ignore="NotSibling" />
<TextView
android:id="@+id/title_content_xml"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:layout_marginRight="16dp"
android:paddingLeft="16dp"
android:text="title"
android:textColor="#1d1d1d"
android:textDirection="rtl"
android:textSize="17sp"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toBottomOf="@id/img_content_xml" />
<TextView
android:id="@+id/content_content_xml"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:layout_marginEnd="16dp"
android:layout_marginRight="16dp"
android:paddingLeft="16dp"
android:text="content"
android:textColor="#1d1d1d"
android:textDirection="rtl"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toBottomOf="@id/title_content_xml" />
<ImageView
android:id="@+id/img_date_content_Xml"
android:layout_width="18dp"
android:layout_height="18dp"
android:layout_marginTop="20dp"
android:layout_marginEnd="16dp"
android:layout_marginRight="16dp"
android:layout_marginBottom="16dp"
android:src="@drawable/date"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toBottomOf="@id/content_content_xml" />
<TextView
android:id="@+id/date_content_xml"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:layout_marginEnd="8dp"
android:layout_marginRight="8dp"
android:layout_marginBottom="16dp"
android:text="date"
android:textColor="#1d1d1d"
app:layout_constraintRight_toLeftOf="@id/img_date_content_Xml"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toBottomOf="@id/content_content_xml" />
<TextView
android:id="@+id/subject_content_xml"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="16dp"
android:layout_marginLeft="16dp"
android:layout_marginTop="20dp"
android:singleLine="true"
android:text="subject"
android:textColor="#1d1d1d"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintTop_toBottomOf="@id/content_content_xml" />
</androidx.constraintlayout.widget.ConstraintLayout>
</ScrollView>
</androidx.constraintlayout.widget.ConstraintLayout>
您在 <ScrollView
标签中添加了 tools:ignore="MissingConstraints"
,因此您错过了一些限制条件。
有两种方法:
移除父级 ConstraintLayout 并使用 RelativeLayout 因为不需要 ConstraintLayout 只有两种布局。 (多用于复杂的view,方便看)
如果要使用ConstraintLayout,请给予适当的约束。您错过了如下左、右、下约束:
<ScrollView android:layout_width="match_parent" android:layout_height="0dp" android:fillViewport="true" app:layout_constraintTop_toBottomOf="@id/other_toolbar_xml" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" > //.... </ScrollView>