【发布时间】:2020-01-30 12:06:47
【问题描述】:
我需要使用 TextView“标题”使 RelativeLayout 及其两个视图居中。这在 RelativeLayout 中的两个视图都存在时有效。但是,有时(基于某些条件)我不需要显示“箭头”ImageView。在这种情况下,RelativeLayout 中的 textView “phone_name” 不在 TextView “title” 的中心。左边有点偏。我怎样才能使这两种情况都起作用?
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:app="http://schemas.android.com/apk/res-auto">
<LinearLayout android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:paddingLeft="16dp"
android:paddingRight="16dp"
android:paddingBottom="16dp">
<TextView
android:id="@+id/title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="32sp"
android:layout_gravity="center"
android:ellipsize="end"
android:paddingLeft="16dp"
android:paddingRight="16dp"
android:paddingBottom="8dp"
android:textColor="@color/mineral"
android:scrollHorizontally="true"
android:maxLines="1"
app:customTypeface="@string/font_sharp_sans_bold"
tools:text="Hello Joel"/>
<RelativeLayout
android:id="@+id/select_phone"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="12dp"
android:background="@drawable/bg_selector">
<TextView
android:id="@+id/phone_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="14sp"
android:layout_centerInParent="true"
android:ellipsize="end"
android:textColor="@color/charcoal"
android:maxLines="1"
app:customTypeface="@string/font_sharp_sans_semi_bold"
tools:text="Samsung Galaxy"/>
<androidx.appcompat.widget.AppCompatImageView
android:id="@+id/arrow"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/ic_drop_down"
android:layout_centerVertical="true"
android:rotation="180"
android:layout_alignParentRight="true"/>
</RelativeLayout>
</LinearLayout>
</layout>
【问题讨论】:
-
我有点困惑,据我了解,您需要 both 您在
RelativeLayout中的视图居中,但在您的代码android:layout_alignParentRight="true"中,此行使ImageView 始终与布局的右侧对齐在这种情况下,我建议您将其更改为android:layout_toEndOf="@+id/phone_name"(对于 17 以下的 API,您还需要添加android:layout_toRightOf="@+id/phone_name")并将android:gravity="center"添加到RelativeLayout忽略 if我误会了。
标签: java android android-relativelayout