Reputation: 397
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:
Upvotes: 12
Views: 6880
Reputation:
Just replace android:paddingLeft
with android:paddingStart
, as should be anyway and fixes this bug on those devices.
Upvotes: 2
Reputation: 286
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);
}
}
Upvotes: 4
Reputation: 2282
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"
.../>
Upvotes: 0
Reputation: 1193
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>
Upvotes: -1
Reputation: 3561
Try to give padding programmatically by using method setLayoutParams() it will work i am hopeful Ref: Example
Upvotes: 1