Я пытаюсь выровнять TextView с центром в относительной компоновке, но также и справа от ImageView. Я бы хотел, чтобы это выглядело так.Относительная компоновка, выравнивание центра родительского элемента и справа от вида без перекрытия
[-(image)-----some text here------------]
Я могу сделать это с помощью приведенного ниже кода, но если текст становится слишком длинным, он перекрывает изображение.
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:paddingTop="@dimen/small_padding"
android:paddingBottom="@dimen/small_padding"
android:background="@color/White">
<ImageView
android:id="@+id/navMenu"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/home_icon"
android:layout_marginEnd="@dimen/small_padding"
android:contentDescription="@string/abc_search_hint"
android:layout_alignParentStart="true" />
<TextView
android:id="@+id/actionBarTitle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/profile"
android:textSize="24sp"
android:textStyle="bold"
android:textColor="@color/Black"
android:maxLines="1"
android:ellipsize="end"
android:contentDescription="@string/title_activity_connect"
android:layout_centerInParent="true" />
</RelativeLayout>
Я попытался совместив TextView справа от ImageView, но она перестает центрирование родителя, если я могу это сделать. Подсказка:
ли ImageView нужно сидеть над TextView и позволяют текст для заполнения за ним? Или это должно быть как изображение, которое всегда сидит слева от текста, а левая рука TextView ограничена им? –
@ DanielGruici Это горизонтальная компоновка. Представление изображения ДОЛЖНО оставаться полностью выровненным, а текст ДОЛЖЕН оставаться в центре в макете PARENT, а не в остальном пространстве справа от изображения. Как работает текущий код, если текст слишком длинный, тогда он перекрывает изображение влево –
Единственное, что я могу представить, это LinearLayout с весами. Создайте горизонтальную компоновку, а слева - ImageView, а средний - TextView, а правый - пустой. Дайте равные веса изображению и пустому виду, придайте больший вес текстовому виду. Тогда гравитация текста может быть установлена, будет всегда центрироваться и быть связана двумя другими видами внутри. Вам, вероятно, придется столкнуться с весами, чтобы они выглядели так, как вы хотите. –