EditText 填充属性不适用于 API 21 和 22

Posted

技术标签:

【中文标题】EditText 填充属性不适用于 API 21 和 22【英文标题】:EditText padding attribute does not work for API 21 and 22 【发布时间】:2017-10-21 18:42:42 【问题描述】:

为我的EditTexts 设置填充值。但是它不适用于 2122 api 版本。但是,它非常适用于 192324

这是我的代码

<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_
            android:layout_
          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 的 edittext/spinner 视图可以从 xml 设置填充值。

我知道这个问题有一些解决方案,例如以编程方式设置填充值。但这对我不起作用。

例如: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);

【问题讨论】:

直接将填充应用于edittext工作吗? 不!它不起作用 【参考方案1】:

我遇到了同样的问题。 paddingLeft 不适用于 Android 5.1.1 设备。

添加 paddingStart 代替它为我解决了这个问题。

请试一试。

【讨论】:

以上是关于EditText 填充属性不适用于 API 21 和 22的主要内容,如果未能解决你的问题,请参考以下文章

getFilter() 不适用于 ListAdapter

rgba 不适用于 CSS 中的填充属性

BottomSheetDialogFragment 的圆角不适用于 API <21

AdjustResize 不适用于第二个 EditText

setText 不适用于自定义 Edittext

adjustResize 不适用于片段布局内的 EditText 视图