Стиль списка ListView – выравнивание по левому краю текста и выравнивание по правому краю

Я пытаюсь получить строку ListView следующим образом:

| Text-Text-Text <ImageButton> | 

С кнопкой изображения, привязанным к правому краю. Как я могу это сделать? Вот текущий код макета, который я использую. Что я делаю не так?

 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/layercontainer" android:orientation="horizontal" android:layout_width="fill_parent" android:layout_height="wrap_content" android:background="#699"> <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:layout_gravity="left"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="YO HOW SI IT GOESSDA" /> </LinearLayout> <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:layout_gravity="right"> <ImageButton android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/trash" /> </LinearLayout> </LinearLayout> 

Мой код в настоящее время производит это: гррр

Solutions Collecting From Web of "Стиль списка ListView – выравнивание по левому краю текста и выравнивание по правому краю"

Шаг №1: Используйте базу RelativeLayout .

Шаг №2: Поместите свой ImageButton как имеющий android:layout_alignParentRight="true"

Шаг № 3: Поместите свой TextView android:layout_alignParentLeft="true" , android:layout_toLeftOf="..." (где ... это идентификатор вашего ImageButton ) и, возможно, какое-то другое значение RelativeLayout.LayoutParams для вертикального выравнивания

В следующем фрагменте кода представлен пример создания строки ListView с некоторым текстом (выравнивание по горизонтали с помощью android:layout_alignParentLeft="true" ) и значок (выравнивание по горизонтали с помощью android:layout_alignParentRight="true" ) И все вертикально центрированные ( android:layout_centerVertical="true" ).

Он выглядит следующим образом (YMMV, в зависимости от глобальных стилей):

Оказание кода

Кроме того, имеется иконка с комментариями, которая может быть размещена слева от значка самого правого; Удалите теги комментариев XML для включения.

Вот макет XML:

 <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="?android:attr/listPreferredItemHeight" android:descendantFocusability="blocksDescendants" android:padding="6dp"> <!-- Note: android:descendantFocusability="blocksDescendants" set to ensure that OnItemClickListener works by ensuring constituent controls do not take focus --> <TextView android:id="@+id/lbl_list_item_row_text" android:layout_height="wrap_content" android:layout_width="fill_parent" android:lines="1" android:layout_alignParentLeft="true" android:layout_centerVertical="true" android:text="My List Item Text" /> <!-- This can be uncommented to add another button <ImageButton android:id="@+id/btn_additional_icon" android:layout_height="wrap_content" android:layout_toLeftOf="@+id/icon_additional_icon" android:layout_centerVertical="true" android:layout_width="wrap_content" android:padding="3dp" android:background="@null" android:src="@drawable/icon_additional_icon" /> --> <ImageButton android:id="@+id/icon_additional_icon" android:layout_height="wrap_content" android:layout_width="wrap_content" android:layout_alignParentRight="true" android:layout_centerVertical="true" android:background="@null" android:padding="3dp" android:src="@drawable/icon_right_aligned_icon" /> </RelativeLayout>