Текстовое представление с левой стороны с кнопкой на правой стороне не абсолютные значения - PullRequest
3 голосов
/ 10 августа 2010

Я пытаюсь, чтобы мой текстовый вид обнимал левую сторону экрана, в то время как кнопка обнимает правую сторону (и, если возможно, просто ради времени, чтобы текстовый центр по центру располагался вертикально, чтобы соответствовать кнопке), не делайте это, используя абсолютные значения. Вот моя кодировка:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<TextView
android:layout_width="100px"
android:layout_height="wrap_content"
android:layout_gravity="left"
android:text="Change City:"
/>
<Button 
android:layout_width="100px" 
android:layout_height="wrap_content" 
android:layout_gravity="right"
android:text="Click" 
android:id="@+id/citychoicebutton"
/>
</LinearLayout>

Я думал, что layout_gravity позаботился о том, что я пытаюсь сделать, но, видимо, нет.

Ответы [ 2 ]

3 голосов
/ 10 августа 2010

Гравитация указывает, как разместить элемент внутри самого элемента, а не в пределах границ родительского элемента (экрана).

Это означает, что если ваш текст занимает всего 50 пикселей в ширину, но вы выделили 100 пикселей для TextView, фактические символы будут располагаться слева, в центре или справа от пространства в 100 пикселей (согласно значению силы тяжести).

При использовании LinearLayout вам нужно будет принять ширину экрана, чтобы достичь желаемого эффекта, и использовать «dip» как единицу, и надеяться на лучшее (протестируйте его на разных размерах экрана в вашем эмуляторе).

Лучшей альтернативой является Relative Layout, и используйте android: layout_alignParentLeft и android: layout_alignParentRight.

Кстати, рекомендуется использовать «dip» (пиксели, не зависящие от плотности), а не «px» для элементов макета в целом.

Плотность, независимая единица пикселей, теперь "dp". "dip" все еще работает, хотя.

2 голосов
/ 10 августа 2010

Вы можете попробовать использовать RelativeLayout с

android:layout_alignParentLeft

для TextView и

android:layout_alignParentRight

для кнопки.Для выравнивания кнопки и TextView вы можете использовать атрибут

android:layout_alignbaseLIne 

для Button.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...