当前位置: 首页 > 知识库问答 >
问题:

Android:TextInputLayout不会将提示居中

干宏邈
2023-03-14

我在支持库的文本输入中包含了一个编辑文本,我发现无法使提示出现在字段的中心。我已经尝试了在其他堆栈溢出讨论中发现的所有常用技巧,正如您从代码示例中看到的那样,但提示仍然顽固地出现在编辑文本的左侧。我该如何解决这个问题?

请不要建议使用paddingLeft或paddingStart来做到这一点——我想要一些能够在不同设备上干净地工作的东西,所以它必须是一个直接的解决方案,而不是一个变通办法。

需要明确的是:如果我删除文本输入布局,那么提示就会正确居中。是文本输入布局导致了这里的问题。

<android.support.design.widget.TextInputLayout
        android:id="@+id/someId"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginLeft="30dp"
        android:layout_marginStart="30dp"
        android:layout_marginRight="30dp"
        android:layout_marginEnd="30dp"
        android:layout_marginTop="10dp"
        android:gravity="center"
        android:ellipsize="start"
        android:maxLines="1"
        android:inputType="textPersonName"
        >

    <EditText
        android:id="@+id/someId"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:hint="@string/somehint"
        android:textColorHint="@color/somecolor"
        android:textSize="20sp"
        android:textColor="@android:color/black"
        android:background="@android:color/white"
        android:cursorVisible="true"
        android:textCursorDrawable="@null"
        android:paddingTop="10dp"
        android:paddingBottom="10dp"
        android:inputType="textPersonName"
        android:maxLines="1"
        android:ellipsize="start"
        />

</android.support.design.widget.TextInputLayout>

使用最新版本的支持库:

    compile 'com.android.support:design:22.2.1'

编辑 - 我试图解决这个问题的事情:

1)用Android . support . V7 . widget . appcompatedittext替换EditText -不起作用

2)在文本输入布局中使用app: hintText外观=“@style/TextAppearance.AppCompat”-不起作用

3)不是在edittext中定义提示,而是在activity -中使用textinputlayout.sethint以编程方式设置提示不起作用:提示出现在左侧。

4)在onActivityCreated中设置编辑文本上的提示。这似乎最初是有效的,但我发现,尽管提示看起来居中,但输入文本布局的功能却被破坏了,单击编辑文本不再执行提示动画。

共有2个答案

赏新知
2023-03-14

似乎没有办法做到这一点(至少我找不到)。作为一种变通方法,我尝试使用MaterialEdittext第三方库——这也不理想,因为尽管小动画提示居中,但它出现在输入框内而不是外部:

https://github.com/rengwuxian/MaterialEditText

贺奕
2023-03-14

要在编辑文本中居中显示提示文本,只需在编辑文本中添加以下两个属性。这将达到目的。

android:ellipsize="start"
android:gravity="center_horizontal"
 类似资料:
  • 我的布局如下所示: 当我验证用户输入时,如果输入无效,我会添加一条错误消息,如下所示: 结果是: https://stackoverflow.com/a/46765159 https://stackoverflow.com/a/33709380 ...和其他解决方案试图解决包装简单的时的情况。 有人知道怎么处理这个吗?

  • 我正在写一个小程序,介绍如何计算网格中给定位置的邻域之和。由于某些原因,程序无法识别正确的值。我想知道这可能是因为我使用了try-catch来限制出界,还是我错过了什么? 我使用的是一个简单的3x3网格,编号为1-9。我在许多其他测试中使用了相同的矩阵,因此假设网格没有问题。即使我在一步一步地调试和检查时得到了11。我不太明白,有人有主意吗? 和中的-1只是将其强制为11(2 4 5),但程序在运

  • 问题内容: 我试图将两个s彼此相邻放置在的中心,当改变大小时,它们不会改变按钮的大小。 为此,我将两个按钮放在带有a的面板中,然后将其放在带有中心的面板中。 但是,以下代码不会在的中心显示所选面板。 问题答案: 设置到。 编辑: @trashgod:我必须弄清楚默认约束是如何做到的。 由于存在GridBagLayout.defaultConstraints字段: 此字段包含包含默认值的Gridba

  • 我正在尝试将三个引导列居中对齐。我不希望列跨越整行。我认为这会使图像看起来太大,空间不够。这就是为什么我放了三列“col-md-3”。我喜欢这个尺寸的栏目。我只想让这些列居中对齐。我想我可以将类名“justify content md center”应用到行中,它可以工作,但不能工作。有人知道如何使用Bootstrap 3将下面的列居中对齐吗?可能吗? 这是我的密码: 在代码笔上查看它。 谢谢你的

  • 问题内容: 我正在尝试请求权限以获取用户的当前位置。 我的日志记录表明,在查询时,我的应用当前没有此权限,但是在不调用任何内容时,则显示。 我的Google地图代码(实现和)位于中。 我设法使该功能在该应用程序的其他“活动”中成功运行,这只是带有Google地图的功能。将其放在或中的方法中(它需要去的地方),该方法不起作用。 有任何想法吗?这与我的Activity的类()有关,还是与Google地

  • 问题内容: python 3.5的新功能之一是受此项目启发的类型提示。 键入:PEP 484 –键入提示。 我想测试它,但是它没有按预期工作。 结果是: 我期待一个错误,因为我期望布尔作为回报。我在python:3.5(docker)和local上测试了它。我是否想念一些东西以使其起作用?这种键入是否在运行时不起作用(例如python app.py)? 问题答案: 请参阅您链接到的PEP中摘要的第