Представление Adding к нижней части расположения в scrollview

Таким образом, мое расположение в основном походит на это:

<ScrollView>
    <RelativeLayout>
        <BunchOfViews/>
        <ImageView android:layout_alignParentBottom="true"/>
    </RelativeLayout>
</ScrollView>

Я имею ScrollView таким образом, все расположение всегда видимо, неважно, высота экрана. Проблема состоит в том, что на очень высоком экране, я все еще хочу мой ImageView быть внизу. Однако ребенок a ScrollView кажется, не имею определенную нижнюю часть. View помещается наверху расположения. Как я могу решить эту проблему аккуратным способом?

65
задан Vasily Kabunov 1 November 2016 в 09:08
поделиться

3 ответа

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

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

Вот один из моих макетов, который делает это:

<ScrollView
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:layout_weight="1"
    android:fillViewport="true" >

    <RelativeLayout
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_marginTop="15px" >

        <!-- bunch of components here -->

        <LinearLayout
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:layout_below="@+id/spinner"
            android:layout_marginTop="5px"
            android:gravity="center_horizontal|bottom"
            android:paddingTop="2px" >

            <Button
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:paddingLeft="20px"
                android:paddingRight="20px"
                android:text="Delete" />
        </LinearLayout>
    </RelativeLayout>
</ScrollView>
147
ответ дан 24 November 2019 в 15:09
поделиться

От: http://code.google.com/p/k9mail/source/browse/k9mail/trunk/res/layout/account_setup_basics.xml?r=1314

Это должно вам помочь:

<RelativeLayout
        android:layout_marginTop="-45dip" 
        android:padding="0dip"
        android:layout_alignParentBottom="true"
        android:gravity="bottom|right" 
        android:background="@android:drawable/bottom_bar"
        android:layout_height="fill_parent"
        android:layout_width="fill_parent">
        <Button
            android:id="@+id/manual_setup"
            android:text="@string/account_setup_basics_manual_setup_action"
            android:minWidth="@dimen/button_minWidth"
            android:layout_height="wrap_content"
            android:layout_width="wrap_content"
            android:layout_marginBottom="-4dip" 
            android:layout_alignParentLeft="true"
            android:layout_centerVertical="false" 
            />
        <Button
            android:id="@+id/next"
            android:text="@string/next_action"
            android:minWidth="@dimen/button_minWidth"
            android:layout_height="wrap_content"
            android:layout_width="wrap_content"
            android:drawableRight="@drawable/button_indicator_next"
            android:layout_marginBottom="-4dip" 
            android:layout_alignParentRight="true"
            android:layout_centerVertical="false" 
            />
    </RelativeLayout>
0
ответ дан 24 November 2019 в 15:09
поделиться

кажется, что linearlayout не нужен, все, что важно, это fillViewPort. теперь вы можете просто использовать

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBottomParent="true">

, когда вы указали, что относительный макет равен по крайней мере размеру экрана.

20
ответ дан 24 November 2019 в 15:09
поделиться
Другие вопросы по тегам:

Похожие вопросы: