Android Layout не будет прокручиваться вертикально в альбомной ориентации - PullRequest
3 голосов
/ 19 сентября 2011

Сообщество Hi Stack Overflow,

Надеюсь, вы поможете мне решить проблему с макетом Android.Похоже, я не могу заставить свою активность выполнять вертикальную прокрутку, когда она в горизонтальной ориентации.

У меня есть родительский элемент scrollview и дочерний объект относительной задержки.Внутри относительной планировки у меня есть различные элементы.Портретная ориентация выглядит великолепно, но в альбомной ориентации изображения у меня сжимается, чтобы вместить все, что на экране, с вертикальной прокруткой, которую я хочу.

Любая помощь всегда очень ценится и код включен!

-AmarettoSlim

<?xml version="1.0" encoding="utf-8"?>

<ScrollView
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/ScrollView"
    android:layout_height="fill_parent" android:layout_width="fill_parent" android:fillViewport="true" android:scrollbars="vertical">

    <RelativeLayout android:id="@+id/MainScreen" android:background="@color/appbackground" android:layout_width="fill_parent" android:layout_height="fill_parent" android:isScrollContainer="true" android:scrollbars="vertical" android:scrollbarStyle="insideOverlay">
        <Spinner android:layout_height="wrap_content" android:layout_width="wrap_content" android:layout_alignLeft="@+id/cspinner" android:layout_marginTop="48dp" android:id="@+id/pspinner" android:layout_above="@+id/buttonGo"></Spinner>
        <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignTop="@+id/cspinner" android:layout_toLeftOf="@+id/cspinner" android:layout_marginRight="14dp" android:layout_marginTop="14dp" android:id="@+id/labelC" android:text="@string/lblC"></TextView>
        <ImageView android:layout_height="wrap_content" android:layout_width="wrap_content" android:src="@drawable/logo" android:layout_alignParentTop="true" android:layout_centerHorizontal="true" android:layout_marginTop="14dp" android:id="@+id/bannerLogo"></ImageView>
        <TextView android:id="@+id/labelPrice" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/lblP" android:layout_alignTop="@+id/pspinner" android:layout_alignRight="@+id/labelC" android:layout_marginTop="16dp"></TextView>
        <Spinner android:layout_height="wrap_content" android:id="@+id/cspinner" android:layout_width="wrap_content" android:layout_above="@+id/labelP" android:layout_centerHorizontal="true"></Spinner>
        <ImageView android:layout_height="wrap_content" android:id="@+id/imgHat" android:layout_width="wrap_content" android:src="@drawable/bowlericon" android:layout_centerHorizontal="true" android:layout_below="@+id/bannerLogo" android:layout_above="@+id/cspinner"></ImageView>
        <Button android:id="@+id/buttonGo" android:layout_width="fill_parent" android:text="@string/btnRun" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:layout_alignParentLeft="true"></Button>
    </RelativeLayout>

</ScrollView>

Ответы [ 2 ]

0 голосов
/ 07 мая 2013

Хмм ... Вы даете важную подсказку: «В LandScape все сжимается». Если все подходит, это нормально, прокрутки нет!

Так что я бы предложил изменить высоту RelativeLayout на «обернуть содержимое» вместо «заполнить родительский». Таким образом, если содержимое вашего относительного макета превысит высоту прокрутки, вы сможете прокручивать.

Кстати, кроме того, заполнение родителя теперь устарело. Вместо этого вы должны использовать "match parent"!

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

попробуйте создать отдельный макет для ландшафтного режима и поместить его в

res/layout-land/
...