EditText内的水平文本滚动

时间:2013-07-03 09:29:44

标签: android android-edittext

我正在创建一个带有自定义背景的EditText字段,但输入文本将比字段本身更长。此外,文本需要在一行中。

我的想法是当行到达字段的末尾时使文本“向左移动”。我在一些应用程序中看到这是可能的。

我搜索了答案,但没有人回答这个具体问题。在我结合其中几个之后,我试图以这种方式解决问题:

<EditText 
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="@drawable/edit_text"
        android:textColor="#FFFFFF"
        android:paddingLeft="5dp"
        android:maxLines="1"
        android:maxLength="25"
        android:scrollHorizontally="true"/>

但是,当我输入文本并且它到达EditText字段的末尾时,它开始拉伸我的字段(特别是“@ drawable / edit_text”),直到我达到25个字符。

此外,当我将layout_width更改为某个特定值时,文本在到达结束时进入第二行(即使maxLines仍为1)。

4 个答案:

答案 0 :(得分:10)

经过一些研究,我发现它有效。

android:inputType="text"内使用EditText为我工作。

希望这会对某人有所帮助并节省您的时间:)

答案 1 :(得分:2)

我明白了。关键是你需要将EditText放在RelativeLayout中。现在它正在发挥作用。

    <RelativeLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="@drawable/edit_text">
        <EditText
            android:layout_width="120dp"
            android:layout_height="21dp"
            android:layout_alignParentLeft="true"
            android:layout_alignParentTop="true"
            android:layout_margin="6dp"
            android:background="#00000000"
            android:imeOptions="actionDone"
            android:inputType="textPersonName"
            android:maxLength="20"
            android:maxLines="1"
            android:paddingLeft="2dp"
            android:textColor="#FFFFFF"/>
    </RelativeLayout>

答案 2 :(得分:2)

添加

后有效
android:scrollHorizontally="true"
android:singleLine="true"
android:gravity="right|center_vertical" 

<EditText
        android:background="@drawable/sk"
        android:id="@+id/ed"
        android:textSize="@dimen/sed"
        android:textColor="@color/tc"
        android:scrollHorizontally="true"
        android:singleLine="true"
        android:gravity="right|center_vertical"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content" />

到我的edittext

答案 3 :(得分:1)

将您的EditText放在HorizontalScrollView内,它可以正常工作..

            <HorizontalScrollView
                android:id="@+id/rlEmail"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:scrollHorizontally="true"
                android:layout_alignLeft="@+id/etPhone"
                android:layout_alignRight="@+id/imgBtnEdit"
                android:layout_below="@+id/etPhone" >
                <EditText
                    android:id="@+id/etEmail"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_alignParentLeft="true"
                    android:layout_alignParentTop="true"
                    android:ems="10"
                    android:enabled="false"
                    android:focusable="false"
                    android:text="info@friedman.com"
                    android:maxLines="1"
                    android:singleLine="true"
                    android:scrollHorizontally="true" />
            </HorizontalScrollView>