#android #listview #alignment
#Android #просмотр списка #выравнивание
Вопрос:
Я пытаюсь добавить строку рейтинга в строку listview, которая содержит изображение и текст. Моя проблема в том, что когда я добавляю панель рейтинга, я не могу выровнять ее по правому краю. Это либо заполнит доступную область, либо выровняет по левому краю.
Моя строка списка определяется следующим образом:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<ImageView
android:id="@ id/picture"
android:layout_width="64px"
android:layout_height="64px"
android:paddingLeft="3px"
></ImageView>
<TextView
android:id="@ id/drinkName"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="25px">
</TextView>
<RatingBar
android:id="@ id/rating"
android:layout_gravity="right"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
style="?android:attr/ratingBarStyleSmall">
</RatingBar>
</LinearLayout>
Есть идеи?
Заранее спасибо, Роланд
Ответ №1:
Три небольших изменения:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content">
<ImageView
android:id="@ id/picture"
android:layout_width="64px"
android:layout_height="64px"
android:paddingLeft="3px"
></ImageView>
<TextView
android:id="@ id/drinkName"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:textSize="25px">
</TextView>
<RatingBar
android:id="@ id/rating"
android:layout_gravity="right"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
style="?android:attr/ratingBarStyleSmall">
</RatingBar>
</LinearLayout>
Ответ №2:
Вы могли бы использовать RelativeLayout … например:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<ImageView
android:id="@ id/picture"
android:layout_width="64px"
android:layout_height="64px"
android:paddingLeft="3px"
></ImageView>
<TextView
android:id="@ id/drinkName"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="25px">
</TextView>
<RelativeLayout android:layout_width="wrap_content" android:id="@ id/relativeLayout1" android:layout_height="match_parent">
<RatingBar android:layout_width="wrap_content" android:id="@ id/rating" android:layout_height="wrap_content" style="?android:attr/ratingBarStyleSmall" android:layout_alignParentRight="true"></RatingBar>
</RelativeLayout>
</LinearLayout>
Ответ №3:
Вы пробовали gravity
-атрибут? Кроме того, вы не должны использовать значения пикселей. Из-за этого ваш макет будет плохо выглядеть на устройствах с другим разрешением экрана.