Android EditText 中的垂直和水平滚动

问题描述 投票:0回答:1

我需要一个具有垂直和水平滚动且固定大小的EditText,我使用了ScrollView和HorizontalScrollView,但是EditText没有填充上面的View,只留下一个小方块,仅在添加文本时填充。

<ScrollView
    android:layout_width="0dp"
    android:layout_height="0dp"
    app:layout_constraintTop_toTopOf="parent"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintEnd_toEndOf="parent">

    <HorizontalScrollView
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <EditText
            android:id="@+id/edit_text"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:gravity="start"
            android:scrollbars="vertical|horizontal"
            android:inputType="textMultiLine"
            android:padding="10dp"
            android:background="@color/purple_700"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintEnd_toEndOf="parent" />
            
    </HorizontalScrollView>
</ScrollView>

我已经尝试将layout_width和layout_height更改为fixed,并且EditText的行为保持不变。

android mobile layout android-edittext
1个回答
0
投票

在 Android 中要在固定大小的容器中创建同时具有垂直和水平滚动功能的 EditText,需要将其包装在 HorizontalScrollView 和 ScrollView 中。此外,请确保 EditText 正确填充父视图。

为父容器设置固定大小。 将 EditText 包裹在 ScrollView 和 HorizontalScrollView 中。 确保 EditText 具有正确的布局参数来填充其容器。 下面是一个布局 XML 示例,演示了此设置:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:padding="16dp">

<FrameLayout
    android:layout_width="300dp"
    android:layout_height="200dp"
    android:background="#ddd">

    <HorizontalScrollView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:fillViewport="true">

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

            <EditText
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:background="#fff"
                android:padding="10dp"
                android:scrollHorizontally="true"
                android:hint="Enter your text here..." />

        </ScrollView>
    </HorizontalScrollView>
</FrameLayout>
© www.soinside.com 2019 - 2024. All rights reserved.