2

を含む xml ファイルがあり、ScrollView その中にLinearLayout;があります。このレイアウトには、さらに 2 つのレイアウトも含まれています。

1 つ目は、データが動的に追加される場所です。

2番目は、ビューの下部に表示する必要があるものです。

gravityしかし、重力が機能していません。両方を試しましlayout_gravityたが、どれも機能しませんでした。すべてのレイアウトが親を埋めるように設定されているのに、なぜこれが起こっているのですか?

著作権レイアウトは、空ScrollViewの場合でも画面の下部にある必要があります (1 番目のレイアウト)。ScrollView

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical"
    android:id="@+id/istoricLayout"
    android:visibility="visible" >

    <ScrollView
        android:layout_width="fill_parent"
        android:layout_height="fill_parent" >

        <LinearLayout
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:orientation="vertical" >

            <LinearLayout
                android:id="@+id/istoric"
                android:layout_width="fill_parent"
                android:layout_height="fill_parent"
                android:orientation="vertical" >
            </LinearLayout>

            <LinearLayout
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:layout_gravity="bottom" //here I'm trying to move this at the buttom
                android:orientation="vertical" >

                <TextView
                    android:layout_width="fill_parent"
                    android:layout_height="@dimen/thick_bar_height"
                    android:layout_marginBottom="@dimen/bar_vertical_space"
                    android:layout_marginTop="@dimen/bar_vertical_space"
                    android:background="@color/white" />

                <Button
                    android:id="@+id/versiuneaCompleta"
                    android:layout_width="250dp"
                    android:layout_height="30dp"
                    android:layout_gravity="center"
                    android:layout_marginBottom="10dp"
                    android:layout_marginLeft="10dp"
                    android:layout_marginRight="10dp"
                    android:background="@color/color2"
                    android:text="Vizioneaza versiunea completa"
                    android:textAlignment="center"
                    android:textColor="@color/white"
                    android:textSize="15dp" />

                <RelativeLayout
                    android:layout_width="250dp"
                    android:layout_height="30dp"
                    android:layout_gravity="center"
                    android:layout_marginBottom="10dp"
                    android:layout_marginLeft="10dp"
                    android:layout_marginRight="10dp"
                    android:background="@color/white" >

                    <ImageView
                        android:layout_width="30dp"
                        android:layout_height="30dp"
                        android:layout_alignParentRight="true"
                        android:adjustViewBounds="true"
                        android:src="@drawable/support_right_icon" />

                    <ImageView
                        android:layout_width="30dp"
                        android:layout_height="30dp"
                        android:layout_alignParentLeft="true"
                        android:adjustViewBounds="true"
                        android:src="@drawable/support_left_icon" />

                    <TextView
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_centerInParent="true"
                        android:background="@color/white"
                        android:text="Support +40.XXX.XXX.XXX"
                        android:textAlignment="center"
                        android:textColor="@color/color2"
                        android:textSize="15dp" />
                </RelativeLayout>

                <LinearLayout
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_gravity="center_horizontal"
                    android:orientation="horizontal" >

                    <TextView
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:text="Politica de condidentialitate ·"
                        android:textColor="@color/white"
                        android:textSize="10dp" />

                    <TextView
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:text=" Despre noi ·"
                        android:textColor="@color/white"
                        android:textSize="10dp" />

                    <TextView
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:text=" Contact"
                        android:textColor="@color/white"
                        android:textSize="10dp" />
                </LinearLayout>

                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_gravity="center_horizontal"
                    android:text="© 2013 Artcos Design. All Rights Reserved"
                    android:textColor="@color/copyRightColor"
                    android:textSize="10dp" />
            </LinearLayout>
        </LinearLayout>
    </ScrollView>

</LinearLayout>
4

4 に答える 4

2

全体を次のように変更します。

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/istoricLayout"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >

    <LinearLayout
        android:id="@+id/bottomLayout"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_gravity="bottom"
        android:orientation="vertical" >

        <TextView
            android:layout_width="fill_parent"
            android:layout_height="@dimen/thick_bar_height"
            android:layout_marginBottom="@dimen/bar_vertical_space"
            android:layout_marginTop="@dimen/bar_vertical_space"
            android:background="@color/white" />

        <Button
            android:id="@+id/versiuneaCompleta"
            android:layout_width="250dp"
            android:layout_height="30dp"
            android:layout_gravity="center"
            android:layout_marginBottom="10dp"
            android:layout_marginLeft="10dp"
            android:layout_marginRight="10dp"
            android:background="@color/color2"
            android:text="Vizioneaza versiunea completa"
            android:textAlignment="center"
            android:textColor="@color/white"
            android:textSize="15dp" />

        <RelativeLayout
            android:layout_width="250dp"
            android:layout_height="30dp"
            android:layout_gravity="center"
            android:layout_marginBottom="10dp"
            android:layout_marginLeft="10dp"
            android:layout_marginRight="10dp"
            android:background="@color/white" >

            <ImageView
                android:layout_width="30dp"
                android:layout_height="30dp"
                android:layout_alignParentRight="true"
                android:adjustViewBounds="true"
                android:src="@drawable/support_right_icon" />

            <ImageView
                android:layout_width="30dp"
                android:layout_height="30dp"
                android:layout_alignParentLeft="true"
                android:adjustViewBounds="true"
                android:src="@drawable/support_left_icon" />

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_centerInParent="true"
                android:background="@color/white"
                android:text="Support +40.766.154.894"
                android:textAlignment="center"
                android:textColor="@color/color2"
                android:textSize="15dp" />
        </RelativeLayout>

        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center_horizontal"
            android:orientation="horizontal" >

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Politica de condidentialitate ·"
                android:textColor="@color/white"
                android:textSize="10dp" />

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text=" Despre noi ·"
                android:textColor="@color/white"
                android:textSize="10dp" />

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text=" Contact"
                android:textColor="@color/white"
                android:textSize="10dp" />
        </LinearLayout>

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center_horizontal"
            android:text="© 2013 Artcos Design. All Rights Reserved"
            android:textColor="@color/copyRightColor"
            android:textSize="10dp" />
    </LinearLayout>

    <ScrollView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_above="@+id/bottomLayout" >

        <LinearLayout
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:orientation="vertical" >

            <LinearLayout
                android:id="@+id/istoric"
                android:layout_width="fill_parent"
                android:layout_height="fill_parent"
                android:orientation="vertical" >
            </LinearLayout>
        </LinearLayout>
    </ScrollView>

</RelativeLayout>

編集 参照される寸法、色、および画像を意味のあるものに設定すると、レイアウトは下の画像のようになります (明確にするために、ScrollView の背景は赤く、bottomLayout の背景は黄色です)。 ここに画像の説明を入力

ご覧のとおりbottomLayout、一番下にあります。

于 2013-08-29T12:22:20.477 に答える
2

@Doomsknight の回答へのコメントに基づいてandroid:fillViewPort="true"ScrollView.

スクロール ビューの子の高さ属性は無視されます (尊重されると、スクロール ビュー全体が役に立たなくなります)。設定fillViewPort="true"により、スクロール ビューの子が親の高さよりも小さい場合は親の高さに拡張され、それ以外の場合、属性は何もしません。このようにして、スクロール ビュー内の子LinearLayoutは、少なくともスクロール ビューの親と同じ高さになり、重力が思いどおりに機能します。

さらに、子のLinearLayout高さを作成し、最初に非ゼロwrap_contentを割り当てます。を削除することもできます。LinearLayoutlayout_weightbottom layout_gravity

于 2013-08-29T12:12:14.107 に答える
2

このリンクを確認してください。問題の説明が含まれています。

http://www.curious-creature.org/2010/08/15/scrollviews-handy-trick/

ScrollView の android:fillViewport を true に設定する必要があります。これにより、子ビューを展開して ScrollView の高さを埋めることができます。次に、空のスペースを埋めるために展開される子要素を 1 つ選択し、その layout_weight を 1 に設定します (LinearLayout が使用されている場合)。その要素は通常、ウィジェットのすぐ上にあり、一番下に配置されることを意図しています。

XML ファイルは次のようになります。

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

    <LinearLayout
        android:orientation="vertical"
        android:layout_height="wrap_content">

        <!-- widget 1 -->
        <!-- widget 2 -->
        <!-- ... -->
        <!-- widget n -->

        <!-- this widget expands to fill the empty space -->
        <TextView
            android:layout_height="fill_parent"
            android:layout_weight="1">
        </TextView>

        <!-- this copyright layout is going to be placed rock bottom -->
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center_horizontal"
            android:text="© 2013 Artcos Design. All Rights Reserved"
            android:textColor="@color/copyRightColor"
            android:textSize="10dp" />

    </LinearLayout>

</ScrollView>
于 2014-07-15T09:59:32.060 に答える
1

テキストビューをスクロールビューの下に移動します。重力を間違った方法で使用しています。

下部の著作権を修正したいと思います。

重力は、特定の方法でビューのコンテンツを表示するために使用されます。またはビュー自体を配置する方法ですが、ビューの階層は変更されません。

        </LinearLayout>
    </LinearLayout>
</ScrollView>

 <TextView
   android:layout_width="wrap_content"
    android:layout_height="wrap_content"
   android:layout_gravity="center_horizontal"
    android:text="© 2013 Artcos Design. All Rights Reserved"
   android:textColor="@color/copyRightColor"
    android:textSize="10dp" />

 </LinearLayout>

また、スクロール ビューを変更する必要があるため、画面の高さを使用せず、代わりに著作権表示の余地を残している領域を最適に埋めます。

 <ScrollView
    android:layout_width="fill_parent"
    android:layout_height="0dip"
    android:layout_weight="1" >
于 2013-08-29T11:57:21.710 に答える