У меня есть активность в моем приложении для Android, которая должна отображать список пар ключ-значение.И ключ, и значение являются строковыми ресурсами с неодинаковой длиной.Ключ должен быть выровнен по левому краю, а значение выровнено по правому краю.Если ключ и значение помещаются в одну строку на экране, они должны отображаться рядом друг с другом, в то время как разрыв строки должен разделять ключ и значение в противном случае.
Я создал два макета для элементов списка, один с переводом строки иодин без, изображенный на следующих скриншотах:
Как автоматически отобразить правильный элемент списка в ListViewмоей деятельности?
Редактировать: по запросу я также добавляю свой исходный код (хотя я не думаю, что он очень полезен, различие между двумя файлами макета должно быть сделано в разделе, где я добавляю макет спискафрагменты для моего ListView. Однако на этом месте мне пришлось бы решить много дополнительных проблем, например, определить длину строкового ресурса, определить пространство, доступное для отображения макета, а также создать обработчики, которые реагируют на изменения доступного пространства. Поэтому япредпочитаю решение, предложенное @bwt)
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/margin_6">
<TextView
android:id="@+id/listitem_key"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentStart="true"
tools:text="Key"/>
<TextView
android:id="@+id/listitem_value"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
tools:text="Value"/>
</RelativeLayout>
и с переводом строки
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/margin_6">
<TextView
android:id="@+id/listitem_key"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentStart="true"
tools:text="Key with a very long text constant"/>
<TextView
android:id="@+id/listitem_value"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/listitem_key"
android:layout_alignParentEnd="true"
tools:text="Value with a very long text constant"/>
</RelativeLayout>