2012-08-10 14 views
7

Mam EditText ze układ:EditText lineSpacingExtra problem

<EditText 
     android:id="@+id/edittext" 
     android:layout_height="wrap_content" 
     android:layout_width="fill_parent" 
     android:text="test" 
     android:layout_margin="5dp" 
     android:gravity="left|center_vertical" 
     android:lineSpacingExtra="10dp" 
     android:lineSpacingMultiplier="1" 
     /> 

ale tekst nie jest wyśrodkowany w pionie z powodu lineSpacingExtra. Oto jak to wygląda:

enter image description here

jak zrobić to tak trzymam lineSpacingExtra tag ale mają tekst wyśrodkowany w pionie?

+0

lineSpacingExtra wydaje się być używane do rozstawiania linii tekstu tego samego editText. Powinieneś użyć marginesu do rozmieszczenia wielu edytowalnych tekstów. Używanie spacingu i center_vertical w tym samym editText? Nie wiem, czy to możliwe. – cosmincalistru

+0

@cosmincalistru Będę miał więcej niż dwie linie w moim editText i klient poprosił o niestandardową odległość między liniami, więc jest to jedyny sposób, który znalazłem, aby ustawić tę odległość –

Odpowiedz

2

Znalazłem sposób na symulację tego, ale nie rzeczywistego rozwiązania. Możesz dodać dopełnienie, ale nie jest to bezpieczne rozwiązanie.

<EditText 
    android:id="@+id/edittext" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:layout_margin="5dp" 
    android:paddingTop="18dp" 
    android:gravity="left|center_vertical" 
    android:lineSpacingExtra="10dp" 
    android:lineSpacingMultiplier="1" 
    android:text="test" /> 
+0

to nie jest rozwiązanie, ponieważ tylko " padding "musi być lineSpacingExtra/2, jak mówi teoria (ta dodatkowa przestrzeń teoretycznie jest dystrybuowana powyżej i poniżej editText). –

+0

Powiedziałem ci, że to nie jest rozwiązanie. a twoja teoria jest zła. mówią, że przestrzeń jest rozdzielona między liniami. nie obejmuje góry pierwszego wiersza. – cosmincalistru

+0

istotnie, Android: lineSpacingExtra: Dodatkowe odstępy między wierszami tekstu. , ale: public void setLineSpacing (float add, float mult): Ustawia odstępy między wierszami dla tego TextView. Każda linia będzie miała swoją wysokość pomnożoną przez mult i dodaną do niej. Tak więc tutaj nie jest powiedziane, że wartość dodana jest tuż powyżej lub poniżej. W praktyce widziałem dodawanie tuż poniżej ... co jest nie tak ... –

-3
android:lineSpacingExtra="Your Value" 
android:lineSpacingMultiplier="Your Value" 
+0

Czy przeczytałeś pytanie? – Aballano

0

Dla mnie to czuje się jak znajomy wydania po raz pierwszy doświadczył podczas projektowania formularzy na stronie internetowej i za pomocą atrybutów CSS niepoprawny, próbując dać tekst fields więcej miejsca.

Dlaczego więc nie należy zapomnieć o tym atrybucie lineSpacingExtra i po prostu użyć dopełnienia górnego & podszewką u dołu?

<EditText 
    android:id="@+id/edittext" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:layout_margin="5dp" 
    android:paddingTop="10dp" 
    android:paddingBottom="10dp" 
    android:gravity="left|center_vertical" 
    android:text="test" /> 
0

Właśnie zrobiłem to TextView to działa dobrze.

  <TextView 
      android:id="@+id/txtWelcome" 
      android:layout_width="wrap_content" 
      android:layout_height="match_parent" 
      android:layout_weight="1" 
      android:gravity="center" 
      android:text="@string/activation" 
      android:lineSpacingMultiplier="1.5" 
      android:textAppearance="@style/CleverFingerThemeLarge" 
      android:textColor="@color/DFTextColor" /> 

Jeśli kładę androida: lineSpacingExtra = "20dp"

uzyskać więcej lukę między liniami.

W moim przykładzie @ ciąg/aktywacja = jest tekstem wielowierszowym.

0

Jeśli ustaw następujące opcje:

android:includeFontPadding="false" 
android:lineSpacingExtra="1" 
android:lineSpacingMultiplier="0dp" 

Twój zaokrąglona powinien odejść!

+0

'lineSpacingMuliplier' musi być wartością zmiennoprzecinkową bez jednostki, taką jak" 1.4 " –