Проблема RelativeLayout - изображение накладывается на ScrollView - PullRequest
2 голосов
/ 16 сентября 2011

Я прочитал все относительные вопросы по компоновке, которые уже были опубликованы, и я думаю, что я дважды спрашиваю, извините, если я.

Я пытаюсь вставить изображение внизу моего приложения, а выше у меня есть вид прокрутки, например:

  <?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="fill_parent"
    android:layout_height="fill_parent" android:id="@+id/RelativeLayout1">
        <ScrollView  android:paddingTop="180dip" android:layout_width="fill_parent" android:id="@+id/scrollView12" android:layout_height="wrap_content">
            <LinearLayout android:id="@+id/linearLayout4" android:layout_width="fill_parent" android:paddingRight="8dip" android:orientation="vertical" android:layout_height="wrap_content">
            </LinearLayout>
        </ScrollView>
        <ImageView android:layout_width="fill_parent"
            android:background="@color/cinza" android:src="@drawable/header"
            android:id="@+id/imageView2" android:layout_height="wrap_content" android:layout_alignParentBottom="true">
        </ImageView>
</RelativeLayout>

Я прокручиваю скроллвайн динамически, поэтому его размер может измениться. Моя проблема в том, что, если он увеличивается до конца экрана, последние записи остаются за моей картинкой. Я хотел, чтобы он рос до самой картины. Некоторые подсказки, как это сделать? Я пробовал несколько способов, относительные, линейные, но иногда картинка исчезает, иногда не прилипает внизу ... Надеюсь, мой вопрос был ясен.

Заранее спасибо,

Жуан

Ответы [ 3 ]

4 голосов
/ 16 сентября 2011

Вы должны просто добавить android:layout_above="@+id/imageView2" для ScrollView и сначала определить ImageView, как вы хотите, чтобы он сначала рисовался, затем ScrollView внутри RelativeLayout.

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:id="@+id/RelativeLayout1">
    <ImageView
        android:layout_width="fill_parent"
        android:background="@color/cinza"
        android:src="@drawable/header"
        android:id="@+id/imageView2"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true">
    </ImageView>
    <ScrollView
        android:paddingTop="180dip"
        android:layout_width="fill_parent"
        android:id="@+id/scrollView12"
        android:layout_above="@+id/imageView2"
        android:layout_height="wrap_content">
        <LinearLayout
            android:id="@+id/linearLayout4"
            android:layout_width="fill_parent"
            android:paddingRight="8dip"
            android:orientation="vertical"
            android:layout_height="wrap_content">
        </LinearLayout>
    </ScrollView>   
</RelativeLayout>
1 голос
/ 16 сентября 2011

RelativeLayout не является правильным выбором в этом случае. Вы должны использовать LinearLayout, а ключом является параметр android:layout_weight:

<?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">

    <ScrollView  android:paddingTop="180dip" 
        android:layout_width="fill_parent" 
        android:layout_height="0dp"
        android:layout_weight="1">

        <LinearLayout android:id="@+id/linearLayout4" 
            android:layout_width="fill_parent" 
            android:paddingRight="8dip" 
            android:orientation="vertical" 
            android:layout_height="wrap_content">
        </LinearLayout>
    </ScrollView>

<ImageView android:layout_width="fill_parent"
    android:background="@color/cinza" 
    android:src="@drawable/header"
    android:id="@+id/imageView2" 
    android:layout_height="wrap_content" />

0 голосов
/ 16 сентября 2011

Дайте идентификатор для scroolview, затем установите тег в представлении изображения для android: layout_blow = "id of scrollview"

Я надеюсь, что это ответ.

...