Doesn't work EditText padding in the API 21

后端 未结 6 1047
你的背包
你的背包 2021-02-07 21:08

Doesn\'t work EditText padding in the API 21. I try to do it in empty project, only with single editText, but it still doesn\'t work.

Set padding programmatically works

相关标签:
6条回答
  • 2021-02-07 21:33

    Solved it in styles, using android standart edittext:

    <style name="AppTheme" parent="@style/Theme.AppCompat.Light.DarkActionBar">
        <item name="android:editTextStyle">@android:style/Widget.EditText</item>
    </style>
    
    0 讨论(0)
  • 2021-02-07 21:34

    Not really the best way to work around the problem, but it works for me: you can set android:layout_height attribute to some fixed value and set android:gravity to center or center_vertical

    <EditText
            ...
            android:layout_width="match_parent"
            android:layout_height="50dp"
            android:gravity="center"
            .../>
    
    0 讨论(0)
  • 2021-02-07 21:39

    This is android bug. In future it will be fix.

    Bug report on google code.

    0 讨论(0)
  • 2021-02-07 21:50

    Just replace android:paddingLeft with android:paddingStart, as should be anyway and fixes this bug on those devices.

    0 讨论(0)
  • 2021-02-07 21:50

    Try to give padding programmatically by using method setLayoutParams() it will work i am hopeful Ref: Example

    0 讨论(0)
  • 2021-02-07 22:00

    Solved it by creating a custom edittext with padding and use it in 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);
    }
    

    }

    0 讨论(0)
提交回复
热议问题