【问题标题】:TextView inside LinearLayout not working properlyLinearLayout 中的 TextView 无法正常工作
【发布时间】:2021-12-03 00:29:50
【问题描述】:

刚开始使用 android 并面临如何设置约束的小问题。

我有一个标签,image1(button) & image2(button)。 image2 与屏幕左对齐。标签是第一个控件并右对齐,并且 image1 放置在标签旁边。 我所需要的是,如果标签的文本增长,那么 image1 应该留在它旁边,并且在屏幕结束时/之前,标签的文本应该进入第二行,这样 image1 就不会出现在屏幕之外。但是一旦文本增长,两个图像,即 image1 和 image2 就会消失在屏幕上。

<?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="wrap_content">

<androidx.constraintlayout.widget.ConstraintLayout
    android:id="@+id/container_view"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_marginStart="@dimen/_8sdp"
    android:layout_marginEnd="@dimen/_8sdp"
    android:background="@color/light_blue"
    android:paddingTop="@dimen/_10sdp"
    android:paddingBottom="@dimen/_10sdp"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toTopOf="parent">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_marginStart="@dimen/_14sdp"
        android:layout_marginEnd="@dimen/_20sdp"
        android:orientation="horizontal"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent">

        <TextView
            android:id="@+id/task_name_tv"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:fontFamily="@font/rubik_regular"
            android:gravity="center"
            android:layout_marginTop="@dimen/_4sdp"
            android:textAlignment="textStart"
            android:text="Use the toilet paper"
            android:textColor="@color/new_app_black"
            android:textSize="@dimen/_14sdp"
            tools:ignore="RtlCompat"/>

        <ImageView
            android:id="@+id/audio_iv"
            android:layout_width="@dimen/_20sdp"
            android:layout_height="@dimen/_20sdp"
            android:minWidth="@dimen/_20sdp"
            android:layout_gravity="center"
            android:layout_marginStart="@dimen/_8sdp"
            android:layout_marginEnd="@dimen/_12sdp"
            android:src="@drawable/ic_audio" />

        <Space
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"/>

        <ImageView
            android:id="@+id/checked_iv"
            android:minWidth="@dimen/_24sdp"
            android:layout_width="@dimen/_24sdp"
            android:layout_height="@dimen/_24sdp"
            android:layout_gravity="center"
            android:src="@drawable/ic_task_unchecked" />

    </LinearLayout>

</androidx.constraintlayout.widget.ConstraintLayout>

</androidx.constraintlayout.widget.ConstraintLayout>

【问题讨论】:

  • 您可以将 2 个 ImageViews 移到线性布局之外,然后修改约束,它应该可以工作。
  • 是的,正如 Miguel Manzo 所说,您可以删除线性布局并直接在约束布局内使用所有子级。使用开始和结束约束来创建一个水平链,然后它应该可以工作了!

标签: android android-constraintlayout


【解决方案1】:

如果您使用的是约束布局,那么您可以删除 LinearLayout 并直接在约束布局内使用所有子级。

<?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="wrap_content"
    android:background="@color/light_grey">

    <TextView
        android:id="@+id/task_name_tv"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_marginStart="@dimen/_2sdp"
        android:layout_marginTop="@dimen/_4sdp"
        android:layout_marginEnd="@dimen/_2sdp"
        android:fontFamily="@font/poppins_regular"
        android:gravity="center"
        android:text="Use the toilet paper"
        android:textAlignment="textStart"
        android:textColor="@color/black"
        android:textSize="@dimen/_14sdp"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toStartOf="@+id/audio_iv"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        tools:ignore="RtlCompat" />

    <ImageView
        android:id="@+id/audio_iv"
        android:layout_width="@dimen/_20sdp"
        android:layout_height="0dp"
        android:layout_gravity="center"
        android:layout_marginStart="@dimen/_8sdp"
        android:layout_marginEnd="@dimen/_12sdp"
        android:minWidth="@dimen/_20sdp"
        android:src="@drawable/ic_search"
        app:layout_constraintBottom_toBottomOf="@+id/task_name_tv"
        app:layout_constraintEnd_toStartOf="@+id/space"
        app:layout_constraintTop_toTopOf="@+id/task_name_tv" />

    <Space
        android:id="@+id/space"
        android:layout_width="0dp"
        android:layout_height="0dp"
        android:layout_weight="1"
        app:layout_constraintBottom_toBottomOf="@+id/task_name_tv"
        app:layout_constraintEnd_toStartOf="@+id/checked_iv"
        app:layout_constraintTop_toTopOf="@+id/task_name_tv" />

    <ImageView
        android:id="@+id/checked_iv"
        android:layout_width="@dimen/_24sdp"
        android:layout_height="0dp"
        android:layout_gravity="center"
        android:minWidth="@dimen/_24sdp"
        android:src="@drawable/ic_chat_icon"
        app:layout_constraintBottom_toBottomOf="@+id/task_name_tv"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintTop_toTopOf="@+id/task_name_tv" />

</androidx.constraintlayout.widget.ConstraintLayout>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-02
    • 1970-01-01
    • 2014-02-07
    相关资源
    最近更新 更多