2012-03-30 12 views

Odpowiedz

79

Chcesz "grawitacji", nie należy jej mylić z grawitacją układu, grawitacja układu przesuwa cały tekst, a grawitacja przesuwa tekst w widoku tekstowym.

<TextView 
    android:id="@+id/item_name" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:drawableLeft="@drawable/icon" 
    android:gravity="center_vertical" /> 
+1

Dzięki, wcześniej wypróbowałem layout_gravity i nie zadziałało, nie wiedziałem o różnicy, ale teraz jest OK. – user940016

+0

dziękuję bardzo ... to działa dla mnie również – xFighter

0

należy umieścić zarówno Drawable i TextView wewnątrz RelativeLayout i użyć atrybutu layout_alignBaseline na TextView.

Można również umieścić tylko te dwa elementy, Drawable i TextView Wewnątrz LinearLayout o orientacji horizontal i layout_height="wrap_content" i używać layout_gravity="center_vertical" na TextView.

+0

przy użyciu Androida: grawitacja byłaby znacznie czystsza i szybsza metoda, choć dałoby to trochę więcej elastyczności do zmiany rozmiaru zdjęć w locie, itp. – Merkidemis

+0

Dzięki za to , Nie chciałem używać drawableLeft, ponieważ ikona była mała i zamiast tego chciałem ImageButton. Miałem kłopoty z marżami, dopóki nie natknąłem się na twoją odpowiedź. Rewizja. – span

27

Oprócz ustawienia wagi, może również pomóc w dostosowaniu w niektórych sytuacjach poprzez zmniejszenie Podkładki na górze i na dole TextView, które mogą być nierówne:

android:includeFontPadding="false" 
+6

Dzięki, 'android: gravity' w połączeniu z tym rozwiązało to dla mnie! – joscarsson

+2

Tak, to też pomaga! Dziękuję bardzo! –

0

Jeśli nie obchodzi o akcentach tekstowych, po prostu spróbuj android:includeFontPadding="false". Spowoduje to usunięcie dodatkowego dopełnienia górnego i dolnego z TextView. Jeśli chodzi o android:gravity="center_vertical", nie ma to wpływu na mój kod.

Powiązane problemy