android - 禁用时将 editText 的内容椭圆化

标签 android android-layout

我有一个布局,其中一个 EditText 由用户填充,然后它被禁用以充当标准 TextView。

问题是,椭圆尺寸永远不会作用于这个 EditText。当它太大而无法完全显示时,我希望它在文本末尾显示“...”,但我找不到任何方法让它工作,而且我不知道为什么它不起作用

这是我的布局

<RelativeLayout
android:id="@+id/search_container"
android:layout_width="match_parent"
android:layout_height="50dp"
android:layout_below="@+id/toolbar"
android:background="@drawable/bg_border_bot_clickable"
android:addStatesFromChildren="@+id/ic_edit"
android:animateLayoutChanges="true">

    <View
        android:layout_width="45dp"
        android:layout_height="45dp"
        android:layout_gravity="center_vertical"
        android:layout_marginLeft="5dp"
        android:layout_alignParentLeft="true"
        android:background="@drawable/ic_action_search"
        android:id="@+id/ic_search" />

    <EditText
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:layout_marginLeft="5dp"
        android:layout_marginRight="5dp"
        android:layout_marginTop="10dp"
        android:layout_marginBottom="10dp"
        android:textColorHint="@color/text_hint"
        android:hint="@string/search_hint"
        android:id="@+id/et_search"
        android:textColor="@android:color/white"
        android:inputType="text|textCapSentences"
        android:ellipsize="end"
        android:singleLine="true"
        android:lines="1"
        android:imeOptions="actionSearch"
        android:background="@drawable/transition_rounded_rectangle"
        android:layout_toLeftOf="@+id/ic_edit"
        android:layout_toRightOf="@+id/ic_search"
        />

<View
    android:layout_width="45dp"
    android:layout_height="45dp"
    android:layout_centerVertical="true"
    android:layout_alignParentRight="true"
    android:background="@drawable/ic_edit"
    android:id="@+id/ic_edit"
    android:visibility="gone"
    android:clickable="true"/>

关于如何实现它有什么想法吗?

最佳答案

将以下属性添加到您的 EditText 以使用省略号包裹内容。

android:scrollHorizontally="true"
android:ellipsize="end"
android:singleLine="true"
android:editable="false"

如果您不想在您的 XML 中默认将 editable 设置为 false,您可以通过调用 setKeyListener(null) 获得相同的结果。

editText.setKeyListener(null);

关于android - 禁用时将 editText 的内容椭圆化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30067241/

相关文章:

android - 完整启动画面的 Lottie 动画不占用全屏

android - 如何在 Android Studio 中滚动可滚动布局?

php - 谷歌 FCM : badge counter restricted to iOS?

c# - 使用工具栏在 fragment 中显示后退按钮

java - 停用空文本或空文本的触摸事件

java - Android文字转语音读取html标签

java - 在android中拆分单词的每个字符?

android - Android中如何避免图片拉伸(stretch)

android - 处理 UI 事件的最佳实践

android - 如何在数据绑定(bind)表达式中进行强制转换?