android - 将 TextView 与约束布局对齐

标签 android textview android-constraintlayout

我试图在约束布局中对齐我的 TextView 而不使用边距,以便布局可以在所有设备中响应,但到目前为止我陷入了定位。这是我的代码和图像中附加的预期输出。我只是想让金额与货币文本稍微一致。 This is the expected output

<?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:orientation="vertical"
    tools:context=".MainActivity">

     <TextView
         android:id="@+id/year_bar_chart_total"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:text="Total"
         app:layout_constraintStart_toStartOf="parent"
         app:layout_constraintTop_toTopOf="parent"
         />
     <TextView
         android:id="@+id/yearBarChartCurrency"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:text="RM"
         app:layout_constraintEnd_toEndOf="@+id/yearBarChartAmount"
         app:layout_constraintHorizontal_bias="0.17"
         app:layout_constraintStart_toStartOf="@id/year_bar_chart_total"
         app:layout_constraintTop_toBottomOf="@id/year_bar_chart_total"
         tools:text="RM"/>
     <TextView
         android:id="@+id/yearBarChartAmount"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:text="tOTAL"
         app:layout_constraintHorizontal_bias="0.17"
         app:layout_constraintStart_toEndOf="@id/yearBarChartCurrency"
         app:layout_constraintTop_toBottomOf="@id/year_bar_chart_total"
         tools:text="233.34"/>

</android.support.constraint.ConstraintLayout>

最佳答案

您可以使用指南来实现此目的:

<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">

<androidx.constraintlayout.widget.Guideline
    android:id="@+id/guideline2"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:orientation="horizontal"
    app:layout_constraintGuide_percent="0.1" />

<androidx.constraintlayout.widget.Guideline
    android:id="@+id/guideline3"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:orientation="vertical"
    app:layout_constraintGuide_percent="0.1" />

<androidx.constraintlayout.widget.Guideline
    android:id="@+id/guideline4"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:orientation="vertical"
    app:layout_constraintGuide_percent="0.25" />

<TextView
    android:id="@+id/textView4"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="balance"
    app:layout_constraintBottom_toTopOf="@+id/textView5"
    app:layout_constraintStart_toStartOf="@+id/guideline3" />

<TextView
    android:id="@+id/textView5"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="RM"
    app:layout_constraintBottom_toTopOf="@+id/guideline2"
    app:layout_constraintStart_toStartOf="@+id/guideline3" />

<TextView
    android:id="@+id/textView8"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="233.34"
    app:layout_constraintEnd_toStartOf="@+id/guideline4"
    app:layout_constraintStart_toEndOf="@+id/textView5"
    app:layout_constraintTop_toBottomOf="@+id/textView4" />

它看起来像这样:

enter image description here

我必须强调一件真正困扰我的事情:

“边距,以便布局可以在所有设备上响应” - 这是不正确的,让我解释一下。

使您的屏幕能够响应所有屏幕尺寸的原因是 constraintLayout以及你如何使用它,我同意dp中的大量边距会使你的屏幕不响应建议在谷歌 Material 设计中使用小边距 - 它会实际上可以让您的应用程序看起来更好,并防止您的 View 直接附加到父边框。

关于android - 将 TextView 与约束布局对齐,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55347778/

相关文章:

java - 创建部分覆盖父级的 Activity 的最佳方法

android - 在 Android TextView 中编码

android - 如何使用数据绑定(bind)在 TextView 中连接两个整数?

android - 如何将 ConstraintLayout 的子项放置在屏幕外(以便稍后可以将它们翻译到屏幕上)?

android - 无法在 Android Studio 的新约束布局编辑器中抓取 View 并设置任何约束

android - 绘制带有纹理的正方形后未绘制 TRIANGLE_FAN 圆

android - 在 android 中使用 rabbitmq 进行聊天

android - 如何为TextView内容保留 'n'个字符来保持相关 View 对齐

Android ConstraintLayout 布局 View 相互叠加加上额外的高度

java - 从 Play 商店下载时出现类未找到异常