Вертикальное расположение ScrollView для Android, сделать так, чтобы ImageView фиксировал процент высоты экрана

Привет, я новичок в разработке Android. Я хочу создать вертикальный ScrollView, который содержит ImageView и TextView. ImageView занимает верхние 50% высоты экрана, а нижняя часть представляет собой TextView с динамическим содержимым, который может занимать менее или более 50% высоты экрана. Поэтому ScrollView будет прокручиваться только в том случае, если текстовое содержимое занимает на 50% больше экрана (см., Например, ниже)в этом случае текст занимает на 50% больше экрана, поэтому пользователь должен прокрутить вниз, чтобы узнать больше

Есть ли способ добиться этого макета?

2 ответа

Решение
<ScrollView
    android:layout_width="match_parent"
    android:layout_height="wrap_content">

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

        <ImageView
            android:id="@+id/scroll_image"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:scaleType="centerCrop" />

        <TextView
            android:id="@+id/scroll_text"
            android:layout_width="match_parent"
            android:layout_height="wrap_content" />
    </LinearLayout>
</ScrollView>

Это макет. В своей деятельности вы должны установить ImageViewвысота в 50% от высоты экрана, вот так:

ImageView scrollImage = (ImageView) findViewById(R.id.scroll_image);
TextView scrollText = (TextView) findViewById(R.id.scroll_text);
int height = getResources().getDisplayMetrics().heightPixels;

LinearLayout.LayoutParams params = (LinearLayout.LayoutParams) scrollImage.getLayoutParams();
params.height = height / 2;
scrollImage.setLayoutParams(params);

Надеюсь, это помогло.

Попробуйте ниже код

<ScrollView
            android:layout_width="match_parent"
            android:layout_height="wrap_content">

            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:weightSum="100"
                android:orientation="vertical">

                <ImageView
                    android:id="@+id/scroll_image"
                    android:layout_width="match_parent"
                    android:layout_height="0dp"
                    android:scaleType="centerCrop"
                    android:layout_weight="50" />

                <TextView
                    android:id="@+id/scroll_text"
                    android:layout_width="match_parent"
                    android:layout_height="0dp"
                    android:layout_weight="50" />
            </LinearLayout>
        </ScrollView>
Другие вопросы по тегам