Android:EditText没有进行椭圆化处理

Ale*_*987 6 android android-edittext

我有两个线性布局的EditTexts,它们没有被椭圆化

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
            android:orientation="horizontal"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:background="#696969"
            android:layout_marginBottom ="5px">

            <EditText
                         android:id="@+id/addressbar" 
                          android:layout_width="fill_parent" 
                          android:layout_height="wrap_content" 
                          android:layout_marginLeft ="2px"
                          android:layout_marginRight ="1.5px"
                          android:layout_weight="0.35"
                          android:textSize = "15sp"
                          android:singleLine="true"
                          android:editable = "true"
                          android:textAppearance="?android:attr/textAppearanceMedium"
                          android:ellipsize="end"
                          android:imeOptions="actionGo"

                           />
            <EditText android:id="@+id/googlebar" 
                          android:layout_width="fill_parent" 
                          android:layout_height="wrap_content" 
                          android:layout_marginLeft ="1.5px"
                          android:layout_marginRight ="3px"
                          android:background="@android:drawable/editbox_background"
                          android:layout_weight="0.65"
                          android:hint="Google"
                          android:textSize = "15sp"
                          android:singleLine="true"
                          android:ellipsize="end"
                          android:imeOptions="actionSearch"
                           />


            </LinearLayout>
Run Code Online (Sandbox Code Playgroud)

你怎么看?

Mub*_*rak 7

设置此属性以编辑文本.Elipsize正在使用禁用编辑文本

android:lines="1"
android:scrollHorizontally="true"
android:ellipsize="end"
android:singleLine="true"
android:editable="false"
Run Code Online (Sandbox Code Playgroud)

或setKeyListener(null); 这对我来说在所有Android平台上都很好.

  • 如果我设置了 `android:inputType="textEmailAddress"` 那么它就不起作用了。 (2认同)

小智 6

我可以看到很多人的评论说 Ellipsize 在 TextView 中工作得很好。但在 EditText 中不行!实际上我想说我们需要深入研究 EditText。因为 EditText 是 TextView 的子级。EditText 能够获取用户的输入,这在 TextView 上不可用。所以EditText有KeyListener来观察EditText输入按键事件变化。当您添加椭圆时,我们必须禁用此功能。因此您的 EditText 不会每次都刷新,并且您不会失去椭圆功能。

editText.setKeyListener(null);
editText.setEllipsize(TextUtils.TruncateAt.END);
Run Code Online (Sandbox Code Playgroud)


Wil*_*ate 2

Ellipsize 已损坏:Ellipsize 不适用于自定义 listView 内的 textView

错误报告:http://code.google.com/p/android/issues/detail? id=882

我必须执行以下操作才能使我的工作正常工作...花了一些时间摆弄

android:lines="1"
android:scrollHorizontally="true"
android:ellipsize="end"
Run Code Online (Sandbox Code Playgroud)