EditText无法输入单行文本

9
我正在制作一个计算器,用户输入包含在EditText中。输入是通过屏幕上的按钮键入的,因此Android键盘被禁用。但是,我希望它将所有输入都写在一行中,并且当行到达边框时,需要进行省略号处理,然后可以水平滚动以便您可以查看整个文本。
我尝试通过设置android:maxLines="1"和android:ellipsize="end"来实现此目的,但这并不起作用。文本仍然在多行中,但只有一行可见,您需要垂直滚动才能查看其他行。我还尝试使用android:singleLine="true",但这使EditText完全无法使用。
以下是EditText XML:
<EditText
     android:id="@+id/textView"
     android:layout_width="match_parent"
     android:layout_height="match_parent"
     android:layout_gravity="end"
     android:background="@color/colorBlue"
     android:textAlignment="textEnd"
     android:textSize="40sp" />
4个回答

14

我认为这会对你有用。如果它起作用,请告诉我。

<EditText
 android:id="@+id/textView"
 android:layout_width="match_parent"
 android:layout_height="match_parent"
 android:layout_gravity="end"
 android:background="@color/colorBlue"
 android:textAlignment="textEnd"
 android:textSize="40sp"
 android:inputType="text" 
 android:maxLines="1"
 android:lines="1"
 android:scrollHorizontally="true"
 android:ellipsize="end"/>

这个帖子也许对你有所帮助。


7
这个 + android:inputType="text" 对我很管用。看起来 inputType 在这里非常关键。你提供的链接对我帮助很大。谢谢。 - leonz
好的,谢谢你也让我知道了。我会更新答案的,谢谢帮助! - Charles Li

4

对于EditText中的单行文本,您只需要设置两个属性:

android:inputType="text" 
android:maxLines="1"

1
在编辑文本框中添加此行可使单行文本可滚动。 android:inputType="textShortMessage"

0
**This example helps you to create multiline EditText in Android.**  

<RelativeLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:id="@+id/rl"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:padding="10dp"
        tools:context=".MainActivity"
        >

        <!--

            android:scrollbars="vertical"
                It will display a vertical scrollbar if the EditText text exceed
                3 lines (android:maxLines).
        -->
        <EditText
            android:id="@+id/et"
            android:layout_width="250dp"
            android:layout_height="wrap_content"
            android:padding="10dp"
            android:layout_marginBottom="10dp"
            android:hint="Multiline EditText by XML layout"
            android:fontFamily="sans-serif-condensed"
            android:background="#d3d7b6"
            android:minLines="2"
            android:maxLines="3"
            android:scrollbars="vertical"
            android:inputType="textMultiLine"
            />
        <EditText
            android:id="@+id/et2"
            android:layout_width="250dp"
            android:layout_height="wrap_content"
            android:padding="10dp"
            android:fontFamily="sans-serif-condensed"
            android:hint="Multiline EditText programmatically"
            android:background="#d4d7a5"
            android:layout_below="@+id/et"
            />
    </RelativeLayout>

你能详细解释一下你的答案吗? - KeyMaker00

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接