Android: проблема макета для просмотра списка - PullRequest
2 голосов
/ 09 июня 2011

Я пытаюсь добавить заголовок к своим элементам моего списка. Прямо сейчас вся информация заполняется из статического массива, который состоит из нескольких элементов, но в основном теперь это изображение, за которым следуют несколько различных текстовых представлений. Я хотел бы иметь строку заголовка над изображением и текстовыми представлениями, но по-прежнему содержаться в элементе scrollview (Это имеет смысл? textview / tablerow над изображением безрезультатно.

Вот код LayoutCode

<?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="?android:attr/listPreferredItemHeight"
    android:padding="6dip" >
    <ImageView
        android:id="@+id/icon"
        android:layout_width="100sp"
        android:layout_height="100sp"
        android:layout_marginRight="6dip"
        android:src="@drawable/car1" />
    <LinearLayout
        android:orientation="vertical"
        android:layout_width="0dip"
        android:layout_weight="1"
        android:layout_height="fill_parent"
        >
        <TextView
            android:id="@+id/make"
            android:layout_width="fill_parent"
            android:layout_height="0dip"
            android:layout_weight="1"
            android:gravity="center_vertical"
            android:textColor="#000"
        />

    </LinearLayout>
</LinearLayout>

Это все содержится в этом:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="fill_parent"
    android:layout_height="fill_parent">
    <RelativeLayout android:orientation="vertical" android:background="@drawable/banner"
        android:layout_width="fill_parent" android:layout_height="50sp" android:gravity="center" >

    </RelativeLayout>
    <RelativeLayout android:orientation="vertical"
        android:background="#FFFFF0" android:layout_width="fill_parent"
        android:layout_height="wrap_content" android:gravity="fill_vertical">
        <Button android:text="Change Location" android:id="@+id/ListingsLocationbtn"
            android:layout_height="wrap_content" android:gravity="center"
            android:layout_width="100sp" android:layout_margin="3sp"></Button>
        <Button android:id="@+id/ListingsDetailsbtn" android:text="Details"
            android:layout_toRightOf="@+id/ListingsLocationbtn"
            android:layout_alignTop="@+id/ListingsLocationbtn"
            android:layout_alignBottom="@+id/ListingsLocationbtn"
            android:layout_height="match_parent" android:gravity="center|center_vertical"
            android:layout_width="100sp" android:layout_margin="3sp"></Button>
        <Button android:layout_height="wrap_content" android:id="@+id/ListingsFilterbtn"
            android:text="Filter Results" android:layout_alignParentRight="true"
            android:layout_width="100sp" android:gravity="center"
            android:layout_margin="3sp"></Button>
    </RelativeLayout>

    <RelativeLayout android:orientation="vertical"
        android:background="#FFFFF0" android:layout_width="fill_parent"
        android:layout_height="wrap_content" android:gravity="fill_vertical">
        <TextView android:id="@+id/zipcodeTV" android:paddingTop="2sp"
            android:layout_width="fill_parent" android:layout_height="wrap_content"
            android:textColor="#000"  android:textStyle="bold"/>
    </RelativeLayout>

    <ListView android:id="@+id/android:list" android:layout_width="fill_parent"
        android:layout_height="fill_parent" android:background="#FFFFF0" />
    <TextView android:id="@+id/android:empty"
        android:layout_width="fill_parent" android:layout_height="fill_parent"
        android:text="@string/main_no_items" android:textColor="#000" />

</LinearLayout>

* Я удалил некоторые текстовые просмотры, так как мой код не занял всю страницу

enter image description here

Заранее спасибо за помощь:)!

1 Ответ

4 голосов
/ 09 июня 2011

Попробуйте что-то вроде этого

<?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"
        android:orientation = "vertical"
        android:padding="6dip" >
        <TextView
            android:id = "@+id/myTextBar"
            android:layout_width = "fill_parent"
            android:layout_height = "wrap_content"`
            android:text = "This is my text bar over my image and other info"/>
        <LinearLayout
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:orientation = "horizontal"
            android:padding="6dip" >
            <ImageView
                android:id="@+id/icon"
                android:layout_width="100sp"
                android:layout_height="100sp"
                android:layout_marginRight="6dip"
                android:src="@drawable/car1" />
            <LinearLayout
                android:orientation="vertical"
                android:layout_width="0dip"
                android:layout_weight="1"
                android:layout_height="fill_parent">
                <TextView
                    android:id="@+id/make"
                    android:layout_width="fill_parent"
                    android:layout_height="0dip"
                    android:layout_weight="1"
                    android:gravity="center_vertical"
                    android:textColor="#000"/>

            </LinearLayout>
        </LinearLayout>
    </LinearLayout>

enter image description here

Если вы хотите сделать это с относительной разметкой, это будет выглядеть так:

<?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 = "wrap_content"
    android:padding="6dip">
    <TextView
        android:id = "@+id/title_bar_text"
        android:layout_width = "fill_parent"
        android:layout_height = "wrap_content"
        android:layout_alignParentTop = "true"
        android:text = "This is the title bar"
        android:gravity = "center_horizontal"/>
    <ImageView
        android:id="@+id/icon"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerVertical = "true"
        android:layout_alignParentLeft="true"
        android:layout_below = "@id/title_bar_text"
        android:layout_marginRight="6dip"
        android:src="@drawable/icon" />

    <TextView
        android:id="@+id/make"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_toRightOf="@id/icon"
        android:layout_below = "@id/title_bar_text"
        android:layout_alignParentRight="true"
        android:layout_alignBottom = "@id/icon"
        android:gravity="center_vertical"
        android:singleLine="true"
        android:ellipsize="marquee"
        android:textColor="#FFFFFFFF"
        android:textStyle="bold"
        android:layout_alignWithParentIfMissing="true"
        android:text = "This is the text beside the image"/>
 </RelativeLayout>

Это выглядит так:

enter image description here

...