2014-10-21 11 views
10

Funktioniert nicht EditText Padding in der API 21. Ich versuche es in leeren Projekt tun, nur mit einzelnen editText, aber es funktioniert immer noch nicht.Funktioniert nicht EditText Padding in der API 21

Set Padding programmgesteuert funktioniert, aber in meinem Arbeitsprojekt habe ich eine Menge von EditTexts mit unterschiedlichen Paddings und Padding programmgesteuert einstellen ist nicht richtig.

Auf API-Ebene 19 xml Padding funktioniert gut.

Gibt es irgendwelche Lösungen?

Dieser Code meine EditText xml:

<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"/> 

Im Ergebnis, ich habe: enter image description here

erwarte ich:

enter image description here

+1

Gleiches Problem hier. Meine Edittexte werden den Padding nicht anwenden, nachdem ich auf API 21 aktualisiert habe. –

Antwort

8

Dies ist Android-Fehler. In Zukunft wird es behoben sein.

Bug report on google code.

+1

Fehler wurde am 18. Dezember geschlossen, hoffentlich wird es in der nächsten Version von ... veröffentlicht werden Was? – IlyaEremin

+0

Das sieht nicht so aus, als ob es repariert wird, da 'android: paddingStart' das Problem ist –

1

Versuchen Polsterung durch programmatisch zu geben, mit Methode setLayoutParams() es wird funktionieren ich bin hoffnungsvoll Ref: Example

+1

In meinem Projekt verwende ich viele Edittexte mit unterschiedlichen Paddings und setze das Padding programmatisch auf - das ist kein richtiger Weg, um diese Aufgabe zu lösen. – user3134124

+2

Bestätigen, dass die Einstellung programmgesteuert funktioniert, aber ich stimme mit @ user3134124 überein, dass es sehr ärgerlich ist. – tokudu

-1

es in verschiedenen Schnitten gelöst, android standart EditText mit:

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

Nicht wirklich der beste Weg, um das Problem zu arbeiten, aber es funktioniert für mich: Sie android einstellen: layout_height Attribut zu einem gewissen festen Wert festgelegt und android: Schwerkraft zuZentrum oder center_vertical

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

Gelöst, indem Sie einen benutzerdefinierten Editiertext mit Auffüllung erstellen und in XML verwenden.

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

Ersetzen Sie einfach android:paddingLeft mit android:paddingStart, wie sollte auf jeden Fall und behebt diesen Fehler auf diesen Geräten sein.

Verwandte Themen