为我的 EditText
设置填充值。但是,它不适用于 21 和 22 api 版本。但是,它非常适合 19、23、24。
这是我的代码:
<style name="LoginEditTextStyle">
<item name="android:layout_width">match_parent</item>
<item name="android:layout_height">wrap_content</item>
<item name="android:layout_gravity">center_horizontal</item>
<item name="android:maxLines">1</item>
<item name="android:paddingLeft">@dimen/login_text_padding</item>
<item name="android:paddingRight">@dimen/login_text_padding</item>
</style>
这是我在布局 xml 中的编辑文本
<android.support.design.widget.TextInputLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/login_container_child_view_top_margin"
android:alpha="0">
<EditText
android:id="@+id/login_username_editText"
style="@style/LoginEditTextStyle"
android:hint="@string/user_name"
android:inputType="text"
/>
</android.support.design.widget.TextInputLayout>
21 api版本的结果
对于 24 位 api 版本
我知道有一个 bug用于从 xml 设置填充值的 edittext/spinner View 。
我知道这个问题有一些解决方案,例如以编程方式设置填充值。但这对我不起作用。
例如:this accepted solution doesn't work for me
int paddingLeft = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 40, getResources().getDisplayMetrics());
int paddingRight = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 55, getResources().getDisplayMetrics());
int paddingTop = editText.getPaddingTop();
int paddingBottom = editText.getPaddingBottom();
editText.setPadding(paddingLeft, paddingTop, paddingRight, paddingBottom);
最佳答案
我遇到了同样的问题。 paddingLeft
不适用于 Android 5.1.1 设备。
添加 paddingStart
代替它解决了我的问题。
请试一试。
关于android - EditText 填充属性不适用于 API 21 和 22,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44107246/