Формат MonoDroid Новая таблицаСтроить под размер таблицы - PullRequest
1 голос
/ 29 декабря 2011

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

<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/scannedLO"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_below ="@id/addPart"
android:layout_marginTop="20dip"
android:stretchColumns="3">
<TableRow  android:layout_marginBottom ="10dip">
  <TextView
    android:layout_column="1"
    android:text="Item Number"
    android:padding="3dip"
    android:layout_margin="2dip"/>
  <TextView
    android:layout_column="2"
    android:text="Item Description"
    android:padding="3dip"
    android:layout_margin="2dip"/>
  <TextView
    android:layout_column="3"
    android:text="Qty"
    android:padding="3dip"
    android:layout_margin="2dip"
    android:lines="1"/>
</TableRow>

Когда я делаю это в своей деятельности:

        TableLayout tl = (TableLayout)FindViewById(Resource.Id.scannedLO);
        TableRow tr = new TableRow(this);
        TextView itemNumber = new TextView(this);
        TextView itemDescription = new TextView(this);
        TextView itemQuantity = new TextView(this);

                    TableRow.LayoutParams trparam = new TableRow.LayoutParams();
                    trparam.Span = 3;

                    itemNumber.Text = partnum;
                    itemDescription.Text = partdescr;
                    itemQuantity.Text = partquan;

                    tr.AddView(itemNumber);
                    tr.AddView(itemDescription);
                    tr.AddView(itemQuantity);

                    tl.AddView(tr);

Все3 моих текстовых обзора заканчиваются в первом столбце.

1 Ответ

2 голосов
/ 29 декабря 2011

Метод setLayoutParams() в Java сопоставляется со свойством LayoutParameters в C #.

row.LayoutParameters = ViewGroup.LayoutParams.FillParent;

Как правило, при переводе с Java на C # методы получения / установки в Java отображаются на свойства в C #. Например, getText() / setText() в Java обычно сопоставляется со свойством с именем Text в C #.

Изменить (на основе вашего обновленного вопроса):

Проблема в том, что вы устанавливаете столбец для каждого TextView в XML, но вы не делаете это в коде:

itemNumber.LayoutParameters = new TableRow.LayoutParams(1);
itemDescription.LayoutParameters = new TableRow.LayoutParams(2);
itemQuantity.LayoutParameters = new TableRow.LayoutParams(3);

После этого представления должны перейти в соответствующие столбцы. Они не будут выстраиваться идеально, так как в XML вы применяете padding и margin, но не делаете это и в коде. Я бы предложил создать многократно используемые стили для ячеек, а не переопределять их везде.

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