如何在编辑文本中居中图标?

Posted

技术标签:

【中文标题】如何在编辑文本中居中图标?【英文标题】:How do I center an icon in an Edit Text? 【发布时间】:2021-09-13 22:23:32 【问题描述】:

我在编辑文本中有一个图标和一个提示,我试图将编辑文本的内容水平居中,但这似乎只适用于提示而不适用于图标。该图标更靠近编辑文本的底部。

这是我的代码

<EditText
            android:id="@+id/password_edittext"
            android:layout_
            android:layout_
            android:hint="Password"
            android:backgroundTint="@color/white"
            android:background="@drawable/edittext_background"
            android:inputType="textPassword"
            android:gravity="center_vertical"
            android:drawableStart="@drawable/ic_lock"
            />

【问题讨论】:

android:gravity="center_horizontal"? 【参考方案1】:

我在使用drawableStart 属性时运气不佳,另一种方法是使用SpannableStringImageSpan 通过代码设置提示。

SpannableString string = new SpannableString(" Password");
string.setSpan(new ImageSpan(this, R.mipmap.ic_launcher), 0, 1, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
    
EditText password_edittext = findViewById(R.id.password_edittext);
password_edittext.setHint(string);

XML:

<EditText
        android:id="@+id/password_edittext"
        android:layout_
        android:layout_
        android:backgroundTint="@color/white"
        android:drawablePadding="10dp"
        android:gravity="center_horizontal"
        android:inputType="textPassword" />

【讨论】:

【参考方案2】:

尝试删除重力属性,我认为它会为您工作,因为您将编辑文本的高度设置为包裹内容,这将自动使它们垂直居中。

【讨论】:

以上是关于如何在编辑文本中居中图标?的主要内容,如果未能解决你的问题,请参考以下文章

Bootstrap 徽章 - 文本未在徽章中居中

如何在Android中居中&左&右对齐ActionBar图标

如何使页脚粘在页面底部并在 Bootstrap 中居中?

如何左对齐 Flutter 中的 OutlineButton 图标

在按钮中居中 Twitter Bootstrap 3 Glyphicons

如何在弹性项目(单元格)中居中图像