【问题标题】:Android Constraint Layout: How to vertically align view with another viewAndroid 约束布局:如何将视图与另一个视图垂直对齐
【发布时间】:2019-05-06 13:43:54
【问题描述】:

我希望 Edit textview 与 PROFILE 垂直对齐。 我尝试了很多有意义的事情。

使用这些约束

<?xml version="1.0" encoding="utf-8"?>
    <androidx.constraintlayout.widget.ConstraintLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        android:id="@+id/parentLayout"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="@color/colorPrimary">
        <TextView
            android:id="@+id/titleTxt"
            android:layout_width="wrap_content"
            android:text="PROFILE"
            android:layout_height="wrap_content"
            android:textColor="@android:color/white"
            android:textSize="25sp"
            android:textStyle="bold"
            android:layout_marginTop="24dp"
            app:layout_constraintTop_toTopOf="parent"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintEnd_toEndOf="parent"
        />

        <TextView
            android:id="@+id/editBtn"
            android:text="Edit"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginEnd="16dp"
            android:layout_marginTop="18dp"
            android:textSize="20sp"
            android:textColor="@android:color/white"
            android:padding="8dp"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintTop_toTopOf="titleTxt"
            app:layout_constraintBottom_toBottomOf="titleTxt"
        />
    </androidx.constraintlayout.widget.ConstraintLayout>

这是我当前的输出

【问题讨论】:

  • 你尝试过 layout_constraintBaseline_toBaselineOf 吗??

标签: android android-constraintlayout


【解决方案1】:

您必须像下面一样对齐您的编辑TextView

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        android:id="@+id/parentLayout"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="@color/colorPrimary">
    <TextView
            android:id="@+id/titleTxt"
            android:layout_width="wrap_content"
            android:text="PROFILE"
            android:layout_height="wrap_content"
            android:textColor="@android:color/white"
            android:textSize="25sp"
            android:textStyle="bold"
            android:layout_marginTop="24dp"
            app:layout_constraintTop_toTopOf="parent"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintEnd_toEndOf="parent"
    />

    <TextView
            android:id="@+id/editBtn"
            android:text="Edit"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginEnd="16dp"
            android:textSize="20sp"
            android:textColor="@android:color/white"
            android:padding="8dp"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintTop_toTopOf="@+id/titleTxt"
            app:layout_constraintBottom_toBottomOf="@+id/titleTxt"
    />
</androidx.constraintlayout.widget.ConstraintLayout>

输出

【讨论】:

    【解决方案2】:

    你可以试试——

    <?xml version="1.0" encoding="utf-8"?>
    <android.support.constraint.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"
        android:background="@color/colorPrimary"
        tools:context=".activity.WebviewActivity">
    
        <TextView
            android:id="@+id/titleTxt"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginTop="24dp"
            android:text="PROFILE"
            android:textColor="@android:color/white"
            android:textSize="25sp"
            android:textStyle="bold"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toTopOf="parent" />
    
        <TextView
            android:id="@+id/editBtn"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginStart="8dp"
            android:layout_marginTop="18dp"
            android:layout_marginEnd="16dp"
            android:padding="8dp"
            android:text="Edit"
            android:textColor="@android:color/white"
            android:textSize="20sp"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toTopOf="parent" />
    
    </android.support.constraint.ConstraintLayout>
    

    【讨论】:

      【解决方案3】:

      您需要设置从edit Textviewprofile Textview的基线

      app:layout_constraintBaseline_toBaselineOf="@+id/titleTxt"

      <?xml version="1.0" encoding="utf-8"?>
      <androidx.constraintlayout.widget.ConstraintLayout
          xmlns:android="http://schemas.android.com/apk/res/android"
          xmlns:app="http://schemas.android.com/apk/res-auto"
          android:id="@+id/parentLayout"
          android:layout_width="match_parent"
          android:layout_height="match_parent"
          android:background="@color/colorPrimary">
          <TextView
              android:id="@+id/titleTxt"
              android:layout_width="wrap_content"
              android:text="PROFILE"
              android:layout_height="wrap_content"
              android:textColor="@android:color/white"
              android:textSize="25sp"
              android:textStyle="bold"
              android:layout_marginTop="24dp"
              app:layout_constraintTop_toTopOf="parent"
              app:layout_constraintStart_toStartOf="parent"
              app:layout_constraintEnd_toEndOf="parent"
              />
      
          <TextView
              android:id="@+id/editBtn"
              android:layout_width="wrap_content"
              android:layout_height="42dp"
              android:layout_marginEnd="16dp"
              android:padding="8dp"
              android:text="Edit"
              android:textColor="@android:color/white"
              android:textSize="20sp"
              app:layout_constraintBaseline_toBaselineOf="@+id/titleTxt"
              app:layout_constraintEnd_toEndOf="parent" />
      </androidx.constraintlayout.widget.ConstraintLayout>
      

      【讨论】:

        【解决方案4】:

        试试这个,

        <?xml version="1.0" encoding="utf-8"?>
        
        <android.support.constraint.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">
        
        <TextView
            android:id="@+id/titleTxt"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginEnd="72dp"
            android:text="PROFILE"
            android:textSize="15sp"
            android:textStyle="bold"
            app:layout_constraintBottom_toBottomOf="@+id/editBtn"
            app:layout_constraintEnd_toStartOf="@+id/editBtn" />
        
        <TextView
            android:id="@+id/editBtn"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginTop="30dp"
            android:layout_marginEnd="30dp"
            android:text="Edit"
            android:textColor="@android:color/black"
            android:textSize="20sp"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintTop_toTopOf="parent" />
        
        </android.support.constraint.ConstraintLayout>
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2021-09-28
          • 1970-01-01
          • 2021-05-28
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多