11

我知道以前有人问过关于这个问题的各种问题,但我找不到我的问题的答案。我正在开发一个 android 应用程序,我希望 EditText 字段在用户输入时扩展。我希望它首先是最小尺寸,如果用户键入的内容超过最小值允许的范围,则进行扩展。到目前为止,这是我的代码:

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

    <linearLayout
        android:layout_height="match_parent"
        android:layout_width="wrap_content"
        android:orientation="vertical"
        android:padding="5dp" >

        <linearLayout>
            ...content...
        </linearLayout>

        <linearLayout>
            ...content...
        </linearLayout>

        <EditText 
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:inputType="textMultiLine"
        android:lines="7"
        android:gravity="top" />

    </linearLayout>
</ScrollView>

EditText 字段在父线性布局内,在父 ScrollView 内。它在屏幕上看起来不错,但是当我越过编辑文本字段中的第 7 行时,我必须使用轨迹球通过文本字段返回。滚动屏幕滚动整个屏幕。谁能给我一些提示?我已经尝试对类似问题实施不同的建议,但没有人给我正确的答案。谢谢

4

1 回答 1

12

正如@tozka 在评论中所说,在布局文件中,指定:android:minLines=""而不是android:lines="".

在 Java 中:editText.setMinLines(int)而不是editText.setLines(int).

在 C#(Android 的 Mono)中,editText.SetMinLines(int)而不是editText.SetLines(int).

来自Android 文档

public void setMinLines (int minlines)

使 TextView 至少有这么多行高。设置此值会覆盖任何其他(最小)高度设置。

于 2013-01-06T21:49:19.800 回答