2015-05-07 23 views
8

Podczas ustawiania paddingu miałem dziwne problemy z EditText. xml wygląda następująco:Padding nie działa na niektórych urządzeniach

<EditText 
    android:layout_width="270dp" 
    android:layout_height="55dp" 
    android:ems="10" 
    android:id="@+id/etEmail" 
    android:textStyle="bold" 
    android:layout_gravity="center_vertical" 
    android:textColor="#FFFFFF" 
    android:hint="Or Use your Email" 
    android:inputType="textEmailAddress" 
    android:layout_alignLeft="@+id/textView6" 
    android:layout_alignStart="@+id/textView6" 
    android:textColorHint="#FFFFFF" 
    android:background="@drawable/line_white" 
    android:paddingLeft="16.5dp" 
    android:layout_marginTop="10dp" 
    android:paddingRight="2dp" /> 

Oto zrzut ekranu z Samsung Note 2 (Android 5.0.1):

enter image description here

... i LG G3 (Android 4.4.2):

enter image description here

Jak widać, android:paddingLeft nie działa dla LG.

Jaki może być tego powód?

Dzięki.


UPD: granice Układ (LG):

enter image description here

+1

To musi działać. Ze względu na różne rozdzielczości wyściółki urządzeń są różne ... spróbuj użyć dużej wartości, np. 50 zamiast 16,5dp, aby sprawdzić, czy działa, czy nie? Daj mi znać, jeśli działa – Salmaan

+0

@Salmaan Wynik jest taki sam. Działa dobrze na Samsungie, ale na LG parametr jest ignorowany. –

+0

Przejdź do opcji programistów i sprawdź granice układu ekranu. Zrób zrzut ekranu po tym ... – Salmaan

Odpowiedz

2

EditText wyściółka poprzez XML nie działa po aktualizacji do poziomu API 21.
Ale EditText prace dopełnienia, jeżeli zdefiniować programowo.

editText.setPadding(10, 0, 0, 0); 

Możesz śledzić ten problem na android issue tracker.

Istnieje kilka innych zastępców też omawiany w wątku tracker problem.

0

To dpi problemem urządzenie. Użyj folderu "dimen", podaj inny dp dla różnych rozmiarów ekranu urządzenia. Na pewno to rozwiąże twój problem.

android:paddingLeft="@dimen/yourValueName" 
2

Zauważyłem to na HTC One X. Nie naprawia to twojego konkretnego problemu, ale zmiana paddingStart na paddingLeft zadziałała dla mnie.