Динамическое создание пользовательского интерфейса - PullRequest
0 голосов
/ 19 апреля 2011

Я хочу реализовать следующее layout в коде:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
     android:id="@+id/widget92"
     android:layout_width="fill_parent"
     android:layout_height="fill_parent" >

     <Button
          android:id="@+id/widget164"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          android:text="Button"
          android:layout_alignTop="@+id/widget163"
          android:layout_alignLeft="@+id/widget161" />

     <Button
          android:id="@+id/widget163"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          android:text="Button"
          android:layout_alignTop="@+id/widget162"
          android:layout_toLeftOf="@+id/widget161" />

     <Button
          android:id="@+id/widget162"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          android:text="Button"
          android:layout_below="@+id/widget161"
          android:layout_toLeftOf="@+id/widget160" />

    <Button
          android:id="@+id/widget161"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          android:text="Button"
          android:layout_alignParentTop="true"
          android:layout_toRightOf="@+id/widget160" />

    <Button
          android:id="@+id/widget160"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          android:text="Button"
          android:layout_alignParentTop="true"
          android:layout_toRightOf="@+id/widget159" />

    <Button
          android:id="@+id/widget159"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          android:text="Button"
          android:layout_alignParentTop="true"
          android:layout_alignParentLeft="true" />

</RelativeLayout>

Может кто-нибудь сказать мне, как реализовать это в коде. Спасибо заранее.

Ответы [ 2 ]

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

Вы можете создать все элементы пользовательского интерфейса вручную с той же иерархией, что и в файле макета XML.

Скажите в Activity.onCreate ()

onCreate(...) {
    super.onCreate(...);
    RelativeLayout layout = new RelativeLayout(...);
    Button button = new Button(...);
    layout.addView(button);
    setContentView(layout);
}
0 голосов
/ 19 апреля 2011
RelativeLayout rl = new RelativeLayout(this);
        LayoutParams lp = new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT);
        rl.setId(R.id.widget92);

        Button btn = new Button(this);
        btn.setId(R.id.widget164);
        btn.setText("Text");
        lp = new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
        lp.addRule(RelativeLayout.ALIGN_TOP, R.id.widget163);
        lp.addRule(RelativeLayout.ALIGN_LEFT, R.id.widget161);
        rl.addView(btn, lp);

        btn = new Button(this);
        lp = new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
        ...

        setContentView(rl);
...