Таким образом, мое расположение в основном походит на это:
<ScrollView>
<RelativeLayout>
<BunchOfViews/>
<ImageView android:layout_alignParentBottom="true"/>
</RelativeLayout>
</ScrollView>
Я имею ScrollView
таким образом, все расположение всегда видимо, неважно, высота экрана. Проблема состоит в том, что на очень высоком экране, я все еще хочу мой ImageView
быть внизу. Однако ребенок a ScrollView
кажется, не имею определенную нижнюю часть. View
помещается наверху расположения. Как я могу решить эту проблему аккуратным способом?
Я столкнулся с той же проблемой. Я так и не смог найти очень приятное решение, но вот как я это сделал. Возможно, у кого-то есть лучший способ, я ненавижу добавлять макеты, которые ничего не делают.
Мой хак заключался в добавлении фиктивного линейного макета в нижней части прокрутки, который имеет 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>
Это должно вам помочь:
<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>
кажется, что linearlayout не нужен, все, что важно, это fillViewPort. теперь вы можете просто использовать
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBottomParent="true">
, когда вы указали, что относительный макет равен по крайней мере размеру экрана.