【问题标题】:How to make ConstraintLayout automatically adjust its height?如何让 ConstraintLayout 自动调整其高度?
【发布时间】:2017-08-04 11:24:17
【问题描述】:

无论我输入什么layout_heightConstraintLayout 的高度似乎与手机屏幕大小相同。有什么办法可以将其设计为自动使其高度适应其内容的总高度?

<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


【解决方案1】:

更改布局的高度以填充整个屏幕:

    android:layout_height="match_parent"

【讨论】:

    猜你喜欢
    • 2013-10-28
    • 2022-01-23
    • 1970-01-01
    • 2012-08-19
    • 2010-10-10
    • 1970-01-01
    • 2010-10-17
    • 2016-06-13
    • 1970-01-01
    相关资源
    最近更新 更多