Как я могу разместить новые предметы в scrollview - PullRequest
4 голосов
/ 30 ноября 2011

У меня есть вертикальная прокручиваемая раскладка с множеством элементов, работающая нормально.Я пытаюсь разместить новый линейный макет в нижней части экрана, который НЕ будет частью прокручиваемого макета.То есть он будет располагаться на нижней части (как в объявлении) независимо от прокручиваемой части.Я смог разместить его только внутри scrollView.Как я могу разместить его ниже, чтобы оно было всегда видимым?

Ответы [ 4 ]

20 голосов
/ 30 ноября 2011

Используйте RelativeLayout и упорядочите его следующим образом:

<?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="fill_parent"
    android:orientation="vertical" >

    <ScrollView 
        android:layout_width="fill_parent"
        android:layout_height="wrap_content" 
        android:layout_centerHorizontal="true"
        android:layout_alignParentTop="true"
        android:layout_above="@+id/linearLayoutThatDoesNotScroll" >

        <LinearLayout
            android:id="@+id/linearLayoutWithLotofContent"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:orientation="horizontal" >
        </LinearLayout>

    </ScrollView>

    <LinearLayout
        android:id="@+id/linearLayoutThatDoesNotScroll"  
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical" 
        android:layout_alignParentBottom="true"
        android:layout_centerHorizontal="true" >
    </LinearLayout>

</RelativeLayout>

Хитрость в размещении ScrollView, в то же время она совмещена с верхней частью экрана И над нижней, фиксированной,LinearLayout.Это просто работает.

5 голосов
/ 30 ноября 2011

примерно так:)

<?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:id="@+id/scroll_view"
        android:layout_width="fill_parent" 
        android:layout_height="0dp"
        android:layout_weight="1" >
        <LinearLayout android:id="@+id/content"
            android:layout_width="fill_parent" 
            android:layout_height="wrap_content" />
    </ScrollView>
    <LinearLayout android:id="@+id/bottom"
        android:layout_width="fill_parent" 
        android:layout_height="10dip" />          
</LinearLayout>

Вы добавите нижний контент в нижнюю linearLayout с помощью android: id = bottom :)

1 голос
/ 02 августа 2015
<?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="fill_parent" >

    <Button
        android:id="@+id/dialogButtonOK"
        android:layout_width="100px"
        android:layout_height="wrap_content"
        android:text=" Ok "
        android:layout_alignParentBottom="true"
        android:layout_centerInParent="true"
        android:background="@drawable/button_style"
        />
    <ScrollView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_margin="5dp"
        android:id="@+id/scrView"
        android:layout_above="@id/dialogButtonOK"
        android:layout_alignParentTop="true"
       >
            <HorizontalScrollView
                android:layout_width="fill_parent"
                android:layout_height="wrap_content" >
                      <TableLayout
                        android:layout_width="fill_parent"
                        android:layout_height="wrap_content"
                        android:stretchColumns="*"
                        android:id="@+id/main_table" >
                    </TableLayout>
            </HorizontalScrollView>
    </ScrollView>




</RelativeLayout>

Это работает для меня

1 голос
/ 30 ноября 2011

Если вы используете вертикальный LinearLayout для удержания прокручиваемого макета, то вы можете добавить объявление в LinearLayout ниже прокручиваемого макета, и он появится в нижней части экрана.(при условии, что ваши веса установлены правильно и макет прокрутки установлен на WRAP_CONTENT)

A RelativeLayout позволит вам настроить показ объявлений так, чтобы он совпал с нижней частью прокручиваемого макета, новам все равно нужно убедиться, что для прокручиваемого макета установлено значение WRAP_CONTENT, чтобы оно не занимало весь экран автоматически.

...