Android:TextInputLayout不会使提示

时间:2015-07-30 13:03:51

标签: java android user-interface android-edittext

我在支持库的textinputlayout中包含了一个edittext,我发现无法使提示出现在字段的中心。我已经尝试了在其他stackoverflow讨论中找到的所有常用技巧,正如您可以从代码示例中看到的那样,但提示仍然固执地出现在edittext的左侧。我该如何解决这个问题?

请不要建议使用paddingLeft或paddingStart执行此操作 - 我希望能够在不同设备上干净地工作,因此它必须是直接解决方案而不是解决方法。

为了清楚起见:如果我删除textinputlayout,则提示正确居中。这是造成问题的textinputlayout。

<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:hintTextAppearance =&#34; @ style / TextAppearance.AppCompat&#34;在textinputlayout内 - 没有工作

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

4)在onActivityCreated中设置edittext上的提示。这似乎最初起作用,但我发现尽管提示显示为居中,但inputtextlayout的功能已经破坏,单击edittext不再执行提示动画。

2 个答案:

答案 0 :(得分:0)

似乎没有办法做到这一点(至少不是我能找到的)。作为一种解决方法,我尝试使用MaterialEdittext第三方库 - 也不理想,因为虽然小动画提示居中,但它出现在文本框内而不是在文本框之外:

https://github.com/rengwuxian/MaterialEditText

答案 1 :(得分:0)

要将提示文本放在EditText中,只需在EditText中添加以下两个属性即可。这可以解决问题。

android:ellipsize="start"
android:gravity="center_horizontal"