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, but in my work project, I've a lot of EditTexts with different paddings and set padding programmatically isn't right way.
On API level 19 xml padding works well.
Are there any solutions?
This my EditText xml code:
<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"/>
In the result, I've got:
I expect:
This is android bug. In future it will be fix.
Bug report on google code.
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);
}
}
Just replace android:paddingLeft
with android:paddingStart
, as should be anyway and fixes this bug on those devices.
Try to give padding programmatically by using method setLayoutParams() it will work i am hopeful Ref: Example
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With