EditText的高度不会扩展到其父代的高度

时间:2019-03-26 12:42:48

标签: android android-edittext height parent

我在高度= match_parent的滚动视图中放置了一个编辑文本,并期望它的高度等于滚动视图的高度,但事实并非如此。它的高度像wrap_content一样,这意味着如果EditText中没有文本,我将不得不将光标指向第一行,软键盘才能弹出,我想要的是我可以触摸屏幕(滚动视图),然后弹出软键盘。

下面是布局,感谢您的帮助。

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

    <ScrollView
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1">
        <EditText
            android:id="@+id/editText"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:background="@android:color/transparent"
            android:gravity="top"
            android:padding="10dp"
            android:textSize="16sp"
            android:textColor="@android:color/black">
        </EditText>
    </ScrollView>

    <Button
        android:id="@+id/btnPaste"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="@string/paste"
        android:gravity="center"
        android:onClick="pasteData"
        android:layout_marginLeft="5dp"
        android:layout_marginRight="6dp"
        android:layout_marginBottom="5dp"
        android:background="@drawable/rounded_corner_button"
        android:textColor="@android:color/white"/>
</LinearLayout>

布局捕获:

enter image description here

3 个答案:

答案 0 :(得分:2)

将此行添加到您的 ScrollView 中。

android:fillViewport="true"

答案 1 :(得分:1)

您可以通过更改minLines属性

来控制编辑文本

例如:

<EditText
            android:id="@+id/ed_comment"
            style="@style/EditText.NoBackground"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:gravity="top"
            android:hint="@string/write_comment_hint"
            android:minLines="40"
            android:textSize="16sp"/>

,而不是通过scrollView包装EditText,将此属性添加到editText

android:scrollbars="vertical"

结果:

enter image description here

答案 2 :(得分:0)

将其实现为xml文件中的EditText:

android:scrollbars="vertical"

在onCreate()中实现:

 editText.setMovementMethod(new ScrollingMovementMethod());

然后,如果仅将滚动视图用于文本视图,则不需要滚动视图,它仅使滚动视图仅可用于文本视图。