android - rela - linearlayout layout_below




LinearLayoutがScrollView内で拡大しない (4)

私はandroid:layout_height="fill_parent"を持つLinearLayout内部にScrollViewを持っていますが、 ScrollView完全な高さには拡張されません。 私のレイアウトは次のようになります:

level    layout    layout_width    layout_height
1    LinearLayout    fill_parent    fill_parent
2    LinearLayout    fill_parent    wrap_content
3    (some irrelevant stuff)
2    ScrollView      fill_parent    fill_parent <-- this expands full height
3    LinearLayout    fill_parent    fill_parent <-- this does not (has orientation=vertical)
(following stuff probably are irrelevant, but just to be sure:)
4    TextView        fill_parent    fill_parent
4    LinearLayout    fill_parent    wrap_content

私はLinearLayoutLinearLayoutの完全な高さを拡大していないことがScrollViewなぜなら、 Android Layout Editor Eclipseでは、(アウトラインパネルの) ScrollViewを選択すると、画面を下に塗りつぶす赤い枠線で強調表示されますLinearLayoutを選択すると、そのハイライトは画面の最下部まで拡大しません。 どうすればそれを得ることができますか?

私が達成しようとしている効果は、いくつかのテキストとその下のボタンを持つことです(レベル4のLinearLayout中にはボタンが1つあります)。 テキストはスクロールバーが必要な大きさにすることができます。この場合、ボタンを表示するにはスクロールダウンする必要があります。 スクロールバーのテキストのサイズが十分でない場合は、ボタンを含むLinearLayoutを画面の下部に貼り付ける必要があります。

最初は、完全なXMLを投稿するべきではないと思っていました。なぜなら、質問の中で膨大な量のコードを見るのは大抵の場合です。 しかし、それが必要かもしれないようですので、ここで完全なレイアウトです。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical"
    xmlns:android="http://schemas.android.com/apk/res/android">
    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:id="@+id/video_layout"
        android:focusable="true"
        style="@style/VideoLayout">
        <FrameLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:foreground="@android:drawable/ic_media_play"
            android:foregroundGravity="center">
            <ImageView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:id="@+id/video_thumb"
                android:padding="5dip"
                android:background="#454545"/>
        </FrameLayout>
        <TextView
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:focusable="true"
            style="@style/VideoTitle"
            android:id="@+id/video_title"
            android:layout_gravity="center"
            android:layout_weight="1"/>
    </LinearLayout>
    <ScrollView
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_weight="1">
        <!-- this ScrollView expands the full height of the screen.
             However, the next LinearLayout does not expand the full height of the ScrollView -->
        <LinearLayout
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:layout_weight="1"
            android:layout_gravity="fill"
            android:orientation="vertical"
            android:id="@+id/info_layout">
            <TextView
                android:layout_width="fill_parent"
                android:layout_height="fill_parent"
                android:id="@+id/info_body"
                style="@style/InfoText"/>
            <LinearLayout
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:orientation="horizontal"
                style="@android:style/ButtonBar">
                    <Button
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_gravity="center"
                        android:layout_weight="1"
                        android:text="@string/button_readmore"
                        android:id="@+id/btn_read_more"/>
            </LinearLayout>
        </LinearLayout>
    </ScrollView>
</LinearLayout>

現時点では、問題のあるLinearLayoutではandroid:layout_gravity="bottom"に頼っています。これは、ボタンが画面の最下部に固執するようにします。 しかし、それはまた、テキストを画面の一番下に貼り付けてしまいます。

更新:スクラッチ、 android:layout_gravity="bottom"ScrollViewをうまくスクロールできないようにします。 他のアイデア?


レイアウトXMLを提供できますか? そうすることで、人々は最小限の労力で問題を再現することができます。

設定する必要があるかもしれません

android:layout_weight="1"

あなたが拡大したいアイテムのために


最後に解決策を見つけました。 この問題は、 LinearLayoutではなく、 ScrollViewScrollView 拡大していて、 LinearLayoutLinearLayoutはなかったという事実を考慮して変わっているようです)。

解決策は、 android:fillViewport="true"を使用することScrollView


私はこの投稿が非常に古いことを知っています。 android:fillViewport="true"を使いたくない人のためにandroid:fillViewport="true"これはキーボード上のedittextを表示しないことがあるためです。 LinearLayoutの代わりに相対レイアウトを使用すると、目的を解決します。


私はこれを得るために動的に使用しました。 私はLinearLayoutを持っており、このScrollView内で子として使用されます。 次に、LinearLayoutをもう一度取って何を追加しますか?このLinearLayoutを見たい場合は、このLinearLayoutをScrollViewに追加し、最後にこのScrollViewをLinearLayoutに追加します。 その後、あなたはウルのScrollViewでスクロールを取得でき、何も表示されません。

LinearLayout(親) - ScrollView(LinerLayoutの子) - LinearLayout(ScrollViewの子) - ここにテキストビュー、ボタン、スピナーなどを追加します。 次に、このLinearLyoutをScrollViewに追加します。 BcozはScrollViewのCHILDを1つだけ適用し、最後にこのScrollViewをLinearLyoutに追加します。定義された領域がScreenのサイズを超えると、ScrollView内でScrollが取得されます。





android-layout