Необходимо, чтобы TextView появился рядом с EditBox в той же строке TableLayout

Я обыскивал форумы и Google, пытаясь выяснить, что я делаю здесь не так. Я хочу, чтобы TextView появился перед EditText в той же строке. Я пытался сделать это с помощью TableLayout, но в результате EditText отодвигается от экрана в портретной ориентации, и вы едва можете увидеть его в альбомной ориентации. Вот мой код до сих пор:

    <?xml version="1.0" encoding="utf-8"?>

<Button android:layout_width="wrap_content"
    android:layout_alignParentTop="true" android:layout_alignParentRight="true"
    android:layout_marginBottom="20dip" android:layout_height="wrap_content"
    android:id="@+id/about_button" android:text="@string/about_label" />

    <TextView android:text="@string/deck_size_label"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_marginBottom="20dip" android:textSize="24.5sp"
    android:layout_alignParentLeft="true" 
    android:layout_below="@id/about_button"/> 

    <EditText
    android:id="@+id/deck_size_textbox" android:inputType="number"
    android:layout_width="fill_parent" android:layout_height="wrap_content"
    android:layout_alignParentRight="true"
    android:layout_toRightOf="@id/about_button" /> 
->

Любая помощь с этим будет принята с благодарностью.

2 ответа

Решение

Если текст в вашем TextView слишком широкий, он вытолкнет EditText с экрана. Вы можете заставить TextView и EditText разделить доступную ширину поровну, используя layout_weight, например:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal"
    >
    <TextView
        android:text="@string/land_count_label"
        android:layout_height="wrap_content"
        android:layout_width="0dp"
        android:layout_weight="1"
        android:gravity="left"
        android:layout_marginBottom="20dip"
        android:textSize="24.5sp"
        />
    <EditText
        android:id="@+id/land_count_textbox"
        android:inputType="number"
        android:layout_width="0dp"
        android:layout_weight="1"
        android:layout_height="wrap_content"
        />
</LinearLayout>

Вы можете, вероятно, получить лучший контроль, используя RelativeLayout.

Вы пробовали RelativeLayout? Если вы определяете RelativeLayout с горизонтально ориентированными LinearLayouts внутри него (для строк), вы можете определить атрибуты XML, такие как:

android:layout_toRightOf="@id/idoftextviewhere"

Если он все еще выталкивает окно EditText с экрана, попробуйте также реализовать:

android:layout_alignParentRight
Другие вопросы по тегам