XML-макет Android не работает должным образом с разметкой таблиц и прокруткой - PullRequest
0 голосов
/ 22 апреля 2011

EDIT: TableLayout не работает должным образом? Я вижу, большинство из вас говорят использовать относительный макет и пропустить просмотр таблицы?

enter image description here

ПРОБЕЛ после Данных 1 и Данных 2, от которых я пытался избавиться. Если я поставлю тот же код XML без TableLayout, то все будет в порядке. Что я могу изменить?

3-й ряд с "100", я хотел 2 текстовых просмотра ввода на правой стороне. Я перепробовал все, что только могу придумать, и это не пойдет вправо. Я удалил 2-е текстовое представление, чтобы увидеть, помогло ли это, но не имело большого значения.

Может кто-нибудь сказать мне, что я сделал не так? спасибо!

Вот XML:

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

<ScrollView android:layout_width="fill_parent"
    android:layout_height="wrap_content">


    <TableLayout android:layout_width="fill_parent"
        android:stretchColumns="*" android:layout_height="fill_parent"
        android:orientation="vertical" xmlns:android="http://schemas.android.com/apk/res/android"
        android:padding="6px">

        <TableRow style="@style/FormRows" android:layout_marginTop="15sp">
            <Button android:layout_width="fill_parent"
                android:layout_height="wrap_content" android:layout_marginLeft="5px"
                android:layout_span="3" android:layout_weight="1" android:text="Save"
                android:id="@+id/dgSave" />
        </TableRow>



        <TableRow style="@style/FormRows">

            <TextView android:layout_width="70sp"
                android:layout_height="wrap_content" android:textSize="16sp"
                android:layout_weight="1" android:text="Data 1" />

            <Spinner android:id="@+id/dgData0" android:layout_weight="2"
                android:layout_width="wrap_content" android:layout_height="wrap_content" />

        </TableRow>



        <TableRow>

            <LinearLayout android:orientation="horizontal"
                android:layout_width="fill_parent" android:layout_height="wrap_content">

        <EditText android:text="100" android:selectAllOnFocus="true"
                    android:imeOptions="actionNext" android:numeric="integer"
                    android:width="100sp" android:id="@+id/dgWarn0" android:gravity="right"
                    android:layout_height="wrap_content" android:layout_weight="1"
                    android:layout_gravity="right" android:layout_span="2" />


                <EditText android:text="100" android:selectAllOnFocus="true"
                    android:imeOptions="actionNext" android:numeric="integer"
                    android:width="100sp" android:id="@+id/dgWarn1" android:gravity="right"
                    android:layout_height="wrap_content" android:layout_weight="1"
                    android:layout_gravity="right" android:layout_span="2" />

            </LinearLayout>

        </TableRow>

        <TableRow style="@style/FormRows">

            <TextView android:layout_width="70sp"
                android:layout_height="wrap_content" android:textSize="16sp"
                android:layout_weight="1" android:text="Data 2" />

            <Spinner android:id="@+id/dgData1" android:layout_weight="2"
                android:layout_width="wrap_content" android:layout_height="wrap_content" />

        </TableRow>


    </TableLayout>
</ScrollView>

СПАСИБО! за любую помощь !!! Mark

Ответы [ 2 ]

2 голосов
/ 22 апреля 2011

Вот как может выглядеть RelativeLayout. Я сделал это быстро ... он пропускает некоторые другие поля и т. Д. ... но это отправная точка.

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >
    <Button android:id="@+id/save"
        android:layout_width="fill_parent" 
        android:layout_height="wrap_content" 
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true"
        android:layout_margin="20dp"
        android:text="Save" />
    <Spinner android:id="@+id/spinner1"
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:layout_alignRight="@id/save" />
    <TextView
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:layout_toLeftOf="@id/spinner1"
        android:text="Data 1" />
    <EditText android:id="@+id/editbox"
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:layout_alignRight="@id/save"
        android:layout_below="@id/spinner1" />
    <Spinner android:id="@+id/spinner2"
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:layout_alignRight="@id/save"
        android:layout_below="@id/editbox" />
    <TextView
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:layout_toLeftOf="@id/spinner2"
        android:text="Data 2" />
</RelativeLayout>
0 голосов
/ 22 апреля 2011

Эй, я быстро взглянул на это, и, возможно, TableLayout сейчас лучший выбор для этого конкретного вида деятельности.Вы рассматривали возможность использования RelativeLayout?Там вы можете определить места виджета, разместив их рядом с другими виджетами (например, какая-то кнопка находится под текстовым представлением).

Это всего лишь предположение, может быть, есть больше, чем эта конкретная проблема, и я не заметилПолная картина пока отсутствует.

Здесь вы можете прочитать о RealtiveLayout:

http://developer.android.com/reference/android/widget/RelativeLayout.html

http://developer.android.com/resources/tutorials/views/hello-relativelayout.html

редактировать: Maximus, великие умыдумаю одинаково, 30 секунд между нашими комментариями:)

...