强制视图至少占其父级高度的一定百分比

时间:2014-10-21 06:49:30

标签: android android-layout android-linearlayout parent-child

我有一个LinearLayout,一个ScrollView的直接子节点,有两个孩子。第一个孩子几乎可以是任何高度(它是一个图像),但第二个孩子的内容将远大于视口的高度。我尝试使用layout_weight来实现这一点,但这只会导致图像被设置为类似1dp而第二个孩子接受其余部分,因为权重仅分配给剩余空间。

如何强制图片占据至少40%的屏幕空间?

<ScrollView
        android:id="@+id/scroll_view"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:fillViewport="true">

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

            <ImageView xmlns:android="http://schemas.android.com/apk/res/android"
                android:layout_width="match_parent"
                android:layout_height="0dp"
                android:layout_weight="2"
                android:src="@drawable/my_image" />

            <LinearLayout
                android:id="@+id/prediction_container"
                android:layout_width="match_parent"
                android:layout_height="0dp"
                android:background="@android:color/white"
                android:orientation="vertical"
                android:layout_weight="1">

                <TextView
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:text="[really long text]" />

            </LinearLayout>

    </LinearLayout>

</ScrollView>

1 个答案:

答案 0 :(得分:1)

android:adjustViewBounds="true"

上遗漏了ImageView

将您的ImageView代码更改为此类

<ImageView 
    android:layout_width="match_parent"
    android:layout_height="0dp"
    android:layout_weight="4"
    android:src="@drawable/my_image"
    android:adjustViewBounds="true"
 />