Как заставить интерфейс выглядеть правильно - PullRequest
0 голосов
/ 24 августа 2010

У меня проблема с отображением ListView.В настоящее время это выглядит так со следующим кодом xml:
alt text

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
  xmlns:android="http://schemas.android.com/apk/res/android"
  android:orientation="vertical"
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  android:background="@drawable/favs_main">
    <Button
        android:text="Return to Home"
        android:id="@+id/return_button"
        android:layout_width="150dp" 
        android:layout_height="wrap_content"
        android:layout_marginTop="10dp"
        android:layout_centerHorizontal="true"
        android:layout_alignParentBottom="true"
        android:textSize="15sp"/>
    <ListView
        android:id="@+id/favsListView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="180dp"
        android:layout_above="@id/return_button"/>
</RelativeLayout>

Если вы заметили, что список внизу экрана.Я хочу, чтобы он был чуть ниже текста избранного, а не над кнопкой возврата на главную страницу.Суть в том, что я всегда хочу, чтобы кнопка отображалась, а представление списка занимало пространство между текстом избранного и кнопкой.Текст взят из фонового изображения, поэтому я не могу просто выровнять его ниже.Так что даже с 100 предметами я все равно хотел бы показать кнопку.

Спасибо за помощь

Ответы [ 5 ]

2 голосов
/ 24 августа 2010

Если слово «избранное» является частью фонового изображения, как предлагается в атрибуте фона RelativeLayout, то вы не сможете выровнять элемент под ним без использования хакерных полей или чего-то подобного. Если вы хотите выровнять элемент ниже слова, разделите его на другой ImageView и установите layout_below для ListView равным id этого ImageView. Чтобы правильно выровнять элемент между двумя другими элементами, используйте комбинацию layout_above и layout_below.

1 голос
/ 25 августа 2010

Вы можете использовать простой LinearLayout и использовать атрибут веса в ListView:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 
  xmlns:android="http://schemas.android.com/apk/res/android"
  android:orientation="vertical"
  android:layout_width="wrap_content"
  android:layout_height="fill_parent"
  android:background="@drawable/favs_main">
     <TextView 
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
     />
     <ListView
         android:id="@+id/favsListView"
         android:layout_width="wrap_content"
         android:layout_weight="1"
         android:layout_height="wrap_content"
         android:layout_marginTop="180dp"/>
     <Button
         android:text="Return to Home"
         android:id="@+id/return_button"
         android:layout_width="150dp" 
         android:layout_height="wrap_content"
         android:layout_marginTop="10dp"
         android:layout_centerHorizontal="true"
         android:textSize="15sp"/>
 </LinearLayout>
1 голос
/ 25 августа 2010

это мой список, в котором есть несколько записей, текстовое представление и кнопка, закрепленная в нижней части. я не вставил фон. Попробуйте, надеюсь, это поможет.

http://www.techuv.com/layout-with-butoon-and-textview-fixed-in-bottom/

1 голос
/ 25 августа 2010

Вместо того, чтобы пытаться сделать постоянное представление всегда отображаемым под ListView и выравнивать его (что вы можете сделать, см. Другие предложения), вы можете захотеть взглянуть на использование footerView:

http://developer.android.com/intl/de/reference/android/widget/ListView.html#addFooterView

"Добавьте фиксированный вид для отображения внизу списка."

Обратите внимание, что это может быть и другой макет, если вам в конечном итоге потребуется сделать больше, чем одну кнопку.

1 голос
/ 24 августа 2010

Не могли бы вы просто выровнять ListView к верху родителей и установить поле для ListView так, чтобы оно было ниже текста фона? Также вы можете изменить фон для предоставления текста в ImageView и выровнять ListView так, чтобы он был ниже ImageView.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...