Как запрограммировать относительные положения в коде - PullRequest
0 голосов
/ 12 ноября 2011

Мне нужно создать динамическую таблицу, которая будет соответствовать строкам данных.Строки, которые я хочу, будут иметь определенную форму, например:

http://i.imgur.com/1D8ge.png

Итак, чтобы получить его, я использовал относительный вывод.Проблема в том, что я сначала попробовал это с .xml, чтобы увидеть, какие параметры будут иметь различные представления, которые он формирует, и я получаю его, но теперь я не могу скопировать его в код.

Вот мой код:

TableLayout linkRoutesTable = (TableLayout) findViewById(R.id.layoutLinkRoutes);

//ROW:
TableRow linkRouteRow = new TableRow(this);
linkRouteRow.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
linkRouteRow.setId(i)                   

//RELATIVELAYOUT:
float px0 = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 1, r.getDisplayMetrics());
RelativeLayout relativeLayout = new RelativeLayout(this);
relativeLayout.setLayoutParams(new RelativeLayout.LayoutParams(0, (int)px0)));

//CONTENT:

//  BUTTON: ...             
//  NUMBER:...
//  ADDRESS:...
//  NAME:   ...                 

relativeLayout.addView(number);
relativeLayout.addView(name);
relativeLayout.addView(address);
relativeLayout.addView(button);

linkRouteRow.addView(relativeLayout);
linkRouteTable.addView(linkRouteRow);
linkRoutesTable.refreshDrawableState();

Это ничего не показывает ...

.xml показывает нормально, вот оно:

<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"

    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:layout_gravity="center" android:orientation="vertical">

   <TableRow>

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"


                    android:layout_width="0dp"
                    android:layout_weight="1"
    android:id="@+id/layoutLinkRoutes" >


    <Button android:text="Button" android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/button1" android:layout_alignParentTop="true" android:layout_alignParentRight="true"></Button>
    <TextView android:textStyle="bold" android:textSize="45dp" android:text="1" android:id="@+id/textView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textAppearance="?android:attr/textAppearanceLarge"  android:layout_marginLeft="22dp"></TextView>
    <TextView android:text="TextView" android:id="@+id/textView3" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignBottom="@+id/button1" android:layout_toRightOf="@+id/textView1" android:layout_marginLeft="16dp"></TextView>
    <TextView android:text="TextView" android:id="@+id/textView2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textAppearance="?android:attr/textAppearanceLarge" android:layout_alignParentTop="true" android:layout_alignLeft="@+id/textView3"></TextView>

</RelativeLayout>

</TableRow>

Что я делаю не так вкод?Мне нужна помощь, я перепробовал все.

Если я не использую относительные планы и строки, это показывает что-то плохое ... поэтому проблема в строках и относительном расположении

Действительно, спасибо...

1 Ответ

1 голос
/ 12 ноября 2011

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

Таким образом, вы определяете макет строки таблицы один раз в файле XML и вставляете ее несколько раз в макет таблицы.

Отметьте этот ответ .

...