如何将我的标题放在 ImageView 的顶部

Posted

技术标签:

【中文标题】如何将我的标题放在 ImageView 的顶部【英文标题】:How can put my title at top of the ImageView 【发布时间】:2021-12-25 01:35:12 【问题描述】:

我想把我的标题放在ImageView 的顶部。但是,我不能使用layout_above 将我的标题放在顶部。当我尝试这个时,我的文字是不可见的。最后一张图片中的标题正是我想要的对齐方式。我该怎么做?

代码:

实际:

预期:

【问题讨论】:

欢迎来到 SO!请始终在此处直接包含图像/代码。我已经编辑了你的问题 【参考方案1】:

您无需将ImageViewTextView 包装在另一个RelativeLayout 中。 将它们直接放在ConstraintLayout 中实际上更容易且性能更高。那么这只是正确设置约束的问题。演示代码:

<?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:layout_
    android:layout_>

    <TextView
        android:id="@+id/above"
        android:layout_
        android:layout_
        android:text="Title above"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintStart_toStartOf="@id/image"
        app:layout_constraintEnd_toEndOf="@id/image"/>

    <ImageView
        android:id="@+id/image"
        android:layout_
        android:layout_
        android:src="@color/purple_200"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@id/above"/>

    <TextView
        android:id="@+id/overlay"
        android:layout_
        android:layout_
        android:text="Text overlay"
        app:layout_constraintStart_toStartOf="@id/image"
        app:layout_constraintTop_toTopOf="@id/image"/>

</androidx.constraintlayout.widget.ConstraintLayout>

【讨论】:

我在水平方向上有多个 ImageView。我不需要他们的相对布局吗?我想一旦我水平完成了 2 个 ImageView,我就可以在代码下再次复制粘贴。 imgur.com/a/SVIbRNe 您当然可以将 ConstraintLayout 放在另一个布局中,例如一个相对布局。这就是我的建议。但不是反过来。至少不适合您的用例。但无论如何,多张图片都不是您的问题的一部分,对吧? 非常感谢 Micheal :) 我现在正在努力。 不客气。顺便说一句:您也可以使用 RecyclerView 而不是复制粘贴,上面的代码将是 RecyclerView 中一项的布局。但是,如果它只是您的链接中的四个项目,则可能有点矫枉过正。我猜复制粘贴就可以了:) 实际上,我正在处理多个图像,但我没有包括在问题中。

以上是关于如何将我的标题放在 ImageView 的顶部的主要内容,如果未能解决你的问题,请参考以下文章

在顶部移动imageview

如何将 ImageViews 放在另一个 ImageView 之上?

ImageView 没有正确更新

如何将我的两个 <div> 放在同一个对齐上? [复制]

将我的 ActionBar 放在底部

如何快速在自定义导航栏顶部制作一半的 ImageView