【发布时间】:2017-08-04 11:24:17
【问题描述】:
无论我输入什么layout_height,ConstraintLayout 的高度似乎与手机屏幕大小相同。有什么办法可以将其设计为自动使其高度适应其内容的总高度?
<ScrollView 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"
android:fillViewport="true"
tools:context="stfn.personaltrainer.activities.Training">
<android.support.constraint.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="10dp">
<TextView
android:id="@+id/exerciceName"
android:layout_width="277dp"
android:layout_height="41dp"
android:layout_marginTop="4dp"
android:text="Exercice name"
android:textAlignment="center"
android:textSize="36sp"
app:layout_constraintHorizontal_bias="0.504"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<!-- TextViews, Buttons, etc. -->
<Button
android:id="@+id/repetitionsDone"
android:layout_width="118dp"
android:layout_height="wrap_content"
android:layout_marginTop="50dp"
android:onClick="goToNextSeries"
android:text="@string/done"
android:textAppearance="@style/TextAppearance.AppCompat.Button"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toBottomOf="@+id/repetitionsInCurrentSeries" />
</android.support.constraint.ConstraintLayout>
</ScrollView>
【问题讨论】:
-
我认为将scrollView用作ConstraintLayout的父级并不好,而且还有不必要的空间,因为您定义了自定义高度
android:layout_height="41dp",使scrollView扩展。 -
@Ibrahim 为什么不将 ConstraintLayout 放在 ScrollView 中?
-
好吧,(这是我的观点)我使用ConstraintLayout 和非屏幕 scoll,在这种情况下它是完美的,例如:recycleView 的模型,非滚动屏幕,但如果我必须使用 scrollView ,我更喜欢使用其他布局,例如相对或线性。
-
对于您的情况,您可能使用的是旧版本,这是 scrollView 遇到的错误,请参阅this
-
@Ibrahim:是的,我已将自定义高度定义为
41dp,但定义为 TextView,而不是布局。 TextView 的自定义视图是否会以某种方式影响布局?也许你的意思是这一行:android:layout_height="10dp",但正如我在问题细节中所说:无论我在这里输入什么,ConstraintLayout 的高度都不会改变
标签: android android-constraintlayout