【问题标题】:Android: Center text inside EditText programmaticallyAndroid:以编程方式在 EditText 中居中文本
【发布时间】:2018-11-02 19:47:12
【问题描述】:

有什么方法可以让EditText 字段中的输入文本居中?更具体地说,光标不应从框的左侧开始,而是应从中心开始并在填充输入时向左向外移动。

【问题讨论】:

    标签: android android-edittext


    【解决方案1】:

    你应该使用

     textView.setGravity(Gravity.CENTER_HORIZONTAL);
    

    【讨论】:

    • 对于未来的读者,如果你想水平和垂直居中,只需使用textView.setGravity(Gravity.CENTER_HORIZONTAL);
    • 我认为它使垂直居中,因为如果未指定中心对齐,edittext 会自动进行
    • 真的吗?好吧,它似乎在垂直和水平方向都居中,所以我认为这很好。
    • 小心它会在Android 5/6的某些设备中引起错误,rf:stackoverflow.com/a/26017060/1074998
    【解决方案2】:

    在布局文件的小部件定义中尝试android:gravity="center_horizontal"。这不会严格地“向外向左移动”——它应该在两个方向上均匀地向外移动。如果你真的是想让文本只出现在 EditText 的左侧,我怀疑这是可能的。

    【讨论】:

    • 谢谢,但是否也可以通过编程方式执行此操作?
    • @capcom:啊,抱歉,没有意识到你的意思是“Java”。
    【解决方案3】:

    在 EditText 中对齐文本的更简单解决方案是在布局 xml 中添加 android:gravity="center"。无需添加Java代码。

    经过测试的示例代码-

    <EditText
                    android:id="@+id/FieldName"
                    android:layout_width="fill_parent"
                    android:layout_height="wrap_content"
                    android:background="@drawable/back"
                    android:inputType="numberDecimal"
                    android:gravity="center" />
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-01-09
      • 2013-10-26
      • 1970-01-01
      • 1970-01-01
      • 2013-12-26
      • 1970-01-01
      • 2014-01-11
      • 1970-01-01
      相关资源
      最近更新 更多