我需要一个具有垂直和水平滚动且固定大小的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 中要在固定大小的容器中创建同时具有垂直和水平滚动功能的 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>