我在支持库的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不再执行提示动画。
答案 0 :(得分:0)
似乎没有办法做到这一点(至少不是我能找到的)。作为一种解决方法,我尝试使用MaterialEdittext第三方库 - 也不理想,因为虽然小动画提示居中,但它出现在文本框内而不是在文本框之外:
答案 1 :(得分:0)
要将提示文本放在EditText中,只需在EditText中添加以下两个属性即可。这可以解决问题。
android:ellipsize="start"
android:gravity="center_horizontal"