2014-10-21 13 views
10

Non funziona EditText padding nell'API 21. Provo a farlo nel progetto vuoto, solo con un singolo editText, ma ancora non funziona.Non funziona EditText padding nell'API 21

Il padding impostato funziona in modo programmatico, ma nel mio progetto di lavoro ho un sacco di EditTexts con paddings diversi e il padding impostato non è corretto.

A livello di API 19 l'imbottitura xml funziona bene.

Esistono soluzioni?

Questo codice mia 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"/> 

In seguito, ho: enter image description here

mi aspetto:

enter image description here

+1

Lo stesso problema qui. Il mio edittexts non applicherà il padding dopo che ho aggiornato all'API 21. –

risposta

8

Questo è un bug Android. In futuro sarà risolto.

Bug report on google code.

+1

bug è stato chiuso il 18 dicembre, si spera che sarà rilasciato nella prossima versione di ... Di cosa? – IlyaEremin

+0

Questo non sembra che verrà risolto perché l'uso di 'android: paddingStart' è il lavoro –

1

cercare di dare imbottitura di programmazione utilizzando metodo setLayoutParams() funzionerà spero Rif: Example

+1

Nel mio progetto, sto usando un sacco di edittexts con paddings diversi e settato il padding a livello di codice - non è un modo semplice per risolvere questo compito. – user3134124

+2

Confermando che l'impostazione del padding funziona in modo programmatico, ma sono d'accordo con @ user3134124 che è estremamente fastidioso. – tokudu

-1

risolto in stili, utilizzando Android standart EditText:

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

davvero il modo migliore per risolvere il problema, ma funziona per me: è possibile impostare Android: layout_height attributo su un valore fisso e impostato android: gravità al centro o center_vertical

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

Risolto creando un edittext personalizzato con padding e usarlo 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

basta sostituire android:paddingLeft con android:paddingStart, come dovrebbe essere in ogni caso e correzioni di bug presente su tali dispositivi.

Problemi correlati