【问题标题】:android constraint layout alignment between textview and edittexttextview和edittext之间的android约束布局对齐
【发布时间】:2020-08-03 00:52:45
【问题描述】:

我需要在约束布局内的同一行中放置TextViewEditText 并保持它们相互对齐!下面的代码生成如下图:

<?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"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

    <TextView
        android:id="@+id/serverIpAddr"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="192.168.1.11"
        android:textAppearance="@style/TextAppearance.AppCompat.Body1"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

    <EditText
        android:id="@+id/serverPort"
        style="@style/Widget.AppCompat.EditText"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginStart="0dp"
        android:layout_marginLeft="0dp"
        android:layout_marginTop="0dp"
        android:ems="10"
        android:inputType="number"
        android:text="8080"
        android:textAppearance="@style/TextAppearance.AppCompat.Body1"
        app:layout_constraintStart_toEndOf="@+id/serverIpAddr"
        app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>

现在看起来很难看,TextView 和 EditText 日志水平对齐正确,TextView 略高于 EditText

【问题讨论】:

    标签: android android-layout android-constraintlayout


    【解决方案1】:

    您可以使用app:layout_constraintBaseline_toBaselineOf属性使两者的文本水平对齐

    <TextView
        android:id="@+id/serverIpAddr"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="192.168.1.11"
        app:layout_constraintBaseline_toBaselineOf="@id/serverPort"
        android:textAppearance="@style/TextAppearance.AppCompat.Body1"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />
    

    【讨论】:

    • 太好了,如果我在一行中有多个元素,如何将它们全部对齐到同一个基线?我正在考虑一一对齐基线,但可能不是正确的方法!
    • @lucky1928 是像TextView 这样的基于文本的视图吗?或者你还有其他类似 ImageView 的
    • 这是一个图像视图!
    • 你试试 GuideLine,它是 ConstraintLayout 中的一个虚拟视图,你可以将视图与它对齐
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-11-02
    • 1970-01-01
    • 1970-01-01
    • 2015-10-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多