【问题标题】:Display non-editable text at end of EditText in android在android中的EditText末尾显示不可编辑的文本
【发布时间】:2015-11-02 10:31:50
【问题描述】:

我想在 EditText 的末尾显示文本,如上图所示的 URLName。我怎样才能做到这一点?无法编辑文本。我在设计库中的 TextInputLayout 中使用此 editText。提前致谢

【问题讨论】:

  • @TimCastelijns 请仔细阅读问题。它完全不同的问题
  • @ShivanshuVerma 你觉得怎么样?
  • 作者需要一个 EditText,其右侧字段由用户无法更改的静态文本完成。我好吗? @胡须
  • 是的。这就是我想要的

标签: android text android-edittext


【解决方案1】:
  • 创建一个LinearLayout。此布局中的行示例是标题(即 URL 名称)或文本输入字段。

  • 将当前行的LinearLayout 的背景设置为自定义可绘制对象以创建细红线。关注this 帖子上的答案以获取想法。

  • 对于您问题中提到的 URL 输入字段,在当前行内的另一个 LinearLayout 内创建一个 TextView 和一个 EditText

TextView 将包含“.sitename.com”。将其设置为wrap_content 并给它一个weight0。对于您的EditText,将其width 设置为0dp,并将其weight 设置为1。它现在应该填满所有剩余空间。将两者的background 设置为@null

【讨论】:

  • 我想为这个 EditText 使用最新的 TextInputLayout。
  • 这是正常的方法吧?除了上述解决方案之外,还有什么方法可以实现吗?
  • @beardedbeast 我没用过,但是TextInputLayout不能和EditText互换吗?
  • @beardedbeast 您也可以使用TextWatcher 来实现它,但考虑到您希望一个元素在右侧,另一个在左侧,这是一种更直接、更可靠的方法,因为据我所知,就在附近。
  • 不,它只是我们在其中提供editText的布局。
【解决方案2】:

这对我有用:

<RelativeLayout

        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical">
    <EditText
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text=""
            android:layout_alignParentLeft="true"
            android:id="@+id/youeeditid"
            android:layout_gravity="center"
            />
    <TextView
            android:id="@+id/text_hint"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentRight="true"
            android:layout_centerVertical="true"
            android:text="HintText"
            android:textSize="18sp"
            android:layout_marginRight="10dp"
            android:textColor="#808080"
            />
</RelativeLayout>

这有点棘手,但对我有用。

但是

如果您只想设置 EditText,那么您可以执行以下操作:

1) 将 EditText 的 Gravity 设置为“Right”,Ellipsize 设置为“End”。

2) 现在在 onCreate() 方法中写入 EditText 的 onclicklistener 并设置 重力为“左”。

3) 或者您也可以在 OnKeyListener 上以编程方式设置,其中检查 如果 edittext 的长度等于零,则将 EditText 的重力设置为 左。

参考:Setting cursor to the right on an EditText with HINT Gravity to center

【讨论】:

  • 如何在 TextInputLayout 中实现这个?有什么想法吗?
  • 如果edittext增长,那么它将与textview重叠。
猜你喜欢
  • 2016-12-19
  • 2013-02-20
  • 1970-01-01
  • 1970-01-01
  • 2017-10-13
  • 1970-01-01
  • 1970-01-01
  • 2013-06-29
  • 1970-01-01
相关资源
最近更新 更多