2016-07-13 11 views
0

Ich habe einen Test auf MarshMallow Gerät. Wenn ich xml für EditText schreibe und PaddingBottom auf Retype EditText setze. aber es funktioniert nicht. Aber wenn ich PaddingLeft auf New PassWord setzen EditText funktioniert gut.EditText Padding funktioniert nicht wie erwartet in Android

Approch: 1

xml-Code:

<EditText 
      android:id="@+id/change_password_old_password_edittext" 
      android:layout_below="@+id/change_password_mobileNumber_text" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:hint="Old Password" 
      android:layout_marginTop="20.0dip" 
      android:textColorHint="#40000000" 
      android:textSize="@dimen/textsize16"/> 

     <EditText 
      android:id="@+id/change_password_new_password_edittext" 
      android:layout_below="@+id/change_password_old_password_edittext" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:hint="New Password" 
      android:layout_marginTop="20.0dip" 
      android:textColorHint="#40000000" 
      android:paddingLeft="10dip" 
      android:textSize="@dimen/textsize16"/> 

     <EditText 
      android:id="@+id/change_password_retype_password_edittext" 
      android:layout_below="@+id/change_password_new_password_edittext" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:hint="Retype Password" 
      android:layout_marginTop="20.0dip" 
      android:paddingBottom="10dip" 
      android:textColorHint="#40000000" 
      android:textSize="@dimen/textsize16"/> 

ScreenShot:

enter image description here

Approch: 2

Dann entscheide ich mich, PaddingBottom programmatisch einzustellen. Aber es gibt seltsame Ausgabe.

Java-Code:

innen OnCreate Methode

EditText change_password_retype_password_edittext = (EditText)findViewById(R.id.change_password_retype_password_edittext); 
     change_password_retype_password_edittext.setPadding(0,0,0,10); 

Output:

enter image description here

Hinweis: Ich habe auf Marshmallow, LolliPop und auch Jellybean getestet. Aber in allen Geräten funktioniert nicht.

+0

Es scheint kein Problem mit dem Layout. Veröffentlichen Sie den gesamten Layout-Code. –

+0

@AkshayBhat hast du den Bildschirm geschossen Das Problem ist Display .. – Ironman

+0

Ja, aber ich kopierte Ihren Layout-Code und versuchte, es funktioniert gut –

Antwort

3

Sie das Gerät nicht von padding Angabe Sie eingestellt haben, so wird es pixel standardmäßig unter der kleiner ist dann dp so dass die Ergebnisse nicht wie pro Ihre Erwartungen.

Konvertieren Sie die Pixel Sie dp wird die Lösung erhalten:

int paddingPixel = 10; 
float density = getResources().getDisplayMetrics().density; 
int paddingDp = (int)(paddingPixel * density); 
change_password_retype_password_edittext.setPadding(0,0,0,paddingDp); 

Für weitere Informationen besuchen Sie bitte: Add padding on view programmatically

+0

cool es funktioniert ... – Ironman

+1

froh zu wissen, dass die glückliche Codierung .. !! :) –

+0

Wenn ich 'paddingLeft' auf diesen Code setze, dann wird nur' PaddingBottom' und nicht, PaddingLeft' angezeigt. – Ironman