【问题标题】:EditText automatically to the latest char?EditText 自动到最新的字符?
【发布时间】:2014-01-25 17:41:28
【问题描述】:

我想为 android 创建简单的计算器,但在显示长方程时遇到问题。一切正常(一行,水平滚动),但我没有看到行尾(总是看到行首)。是否可以自动滚动到最新的字符?

Example:

Hello there
...lo there
   --------

-

<EditText
        android:id="@+id/etDisplay"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_weight="4"
        android:clickable="false"
        android:cursorVisible="false"
        android:ems="10"
        android:focusable="false"
        android:focusableInTouchMode="false"
        android:gravity="right"
        android:textSize="15sp"
        android:scrollHorizontally="true"
        android:singleLine="true"
        android:ellipsize="end"
        android:hint="0." />

图片:SimpleCalc image

【问题讨论】:

  • 您已设置ellipsize="end"。这是你的意图吗?您的示例在开头显示省略号。
  • 即使使用ellipsize="start" 也没有区别

标签: android xml textview


【解决方案1】:

试试这个:

EditText editText = (EditText) findViewById(R.id.editText1);
editText.setSelection(editText.getText().length());

【讨论】:

  • 谢谢,它运行良好:D 唯一的代码要长得多。如果有任何其他方法可以在 xml 中设置它,请告诉我。
【解决方案2】:

这样做的“官方”方式是(如 cmets 中所建议的),通过将 ellipsize 属性设置为 end。如果它不起作用,可能是因为这个属性有点棘手,这意味着它需要在某些情况下才能起作用(例如,singleLine=true)。

你可能想看看this,当我遇到这个问题时它对我很有帮助。

【讨论】:

    【解决方案3】:

    试试下面的方法把光标放在EditText的末尾。

    EditText etDisplay=(EditText) findViewById(R.id.etDisplay); etDisplay.setSelection(etDisplay.gettext().length());

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-08-11
      • 1970-01-01
      • 2014-09-17
      • 1970-01-01
      • 2011-09-04
      • 2013-08-20
      • 2019-02-17
      相关资源
      最近更新 更多