Не работает дополнение EditText в API 21

Не работает EditText padding в API 21. Я пытаюсь сделать это в пустом проекте, только с одним editText, но он все равно не работает.

Задание проецирования программно работает, но в моем рабочем проекте у меня много EditTexts с различными paddings и программным программированием - неправильный путь.

В API-интерфейсе 19 xml отлично работает.

Существуют ли какие-либо решения?

Этот мой XML-код EditText:

   <EditText
   android:id="@+id/et_text"
   android:text="Text"
   android:paddingLeft="20dp"
   android:paddingStart="20dp"
   android:paddingRight="20dp"
   android:paddingEnd="20dp"
   android:layout_marginLeft="30dp"
   android:layout_marginRight="30dp"
   android:layout_width="match_parent"
   android:layout_height="45dp"/>

В результате у меня есть: enter image description here

Я ожидаю:

enter image description here

Ответ 2

Решил его, создав пользовательский edittext с дополнением и используя его в xml.

public class MyEditTextView extends EditText{

public MyEditTextView(Context context) {
    super(context);
    init();
}

public MyEditTextView(Context context, AttributeSet attrs) {
    super(context, attrs);
    init();
}

public MyEditTextView(Context context, AttributeSet attrs, int defStyleAttr) {
    super(context, attrs, defStyleAttr);
    init();
}

private void init(){
    int paddingLeftRight = (int) getResources().getDimension(R.dimen.edittext_padding);
    int topPadding = this.getPaddingTop();
    int bottomPadding = this.getPaddingBottom();
    setPadding(paddingLeftRight, topPadding, paddingLeftRight, bottomPadding);
}

}

Ответ 3

Попробуйте дать заполнение программным путем с помощью метода setLayoutParams() он будет работать, я надеюсь Ссылка: Пример

Ответ 4

Не лучший способ обойти проблему, но она работает для меня: вы можете установить атрибут android: layout_height на определенное фиксированное значение и установить андроид: гравитация to center или center_vertical

<EditText
        ...
        android:layout_width="match_parent"
        android:layout_height="50dp"
        android:gravity="center"
        .../>

Ответ 5

Просто замените android:paddingLeft на android:paddingStart, как и должно быть, и исправим эту ошибку на этих устройствах.

Ответ 6

Решил его в стилях, используя стандартную редакцию Android:

<style name="AppTheme" parent="@style/Theme.AppCompat.Light.DarkActionBar">
    <item name="android:editTextStyle">@android:style/Widget.EditText</item>
</style>