4

ScrollView単一の子 (LinearLayout によってラップされた要素) を含む があります。この子の高さがビューポートの高さの半分になることもあれば、それよりも大きいこともあります。

ここでレイアウト:

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingLeft="10dp"
    android:paddingRight="10dp"
    android:paddingBottom="10dp"
    android:paddingTop="10dp"
    android:background="@color/some_background">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="center_vertical"
        android:background="@drawable/fond_consult"
        android:orientation="vertical"
        android:weightSum="2">

        ... Some TextViews and ImageViews...

    </LinearLayout>
</ScrollView>

画面サイズと密度が低い場合、子は ScrollView に正しく表示されますが、このアクティビティを HDPI や XHDPI などのより大きな画面でレンダリングすると、コンテンツが ScrollView の上部に配置されます。

ScrollView の唯一の子に重力を設定する方法はありますか、またはデバイス画面が子の測定された高さよりも大きい場合、scrollView を削除する必要がありますか?

4

2 に答える 2

14

あなたができることは、そのととしてに追加android:layout_gravity="center"してみることです。ScrollViewは、子レイアウトの高さと幅に合わせて管理します。ScrollViewlayout_widthlayout_heightwrap_content

于 2012-08-29T15:38:01.450 に答える
1

通常の場合、ScrollViewは必要最小限のスペースしか占有しないため、垂直方向の配置(垂直方向のスクロールの場合)の問題はまったく発生しません。http://www.curious-creature.org/2010/08/15/scrollviews-handy-trick/の記事を読むことができます。それはあなたを助けるかもしれません。

于 2012-08-29T13:14:06.257 に答える