1. ホーム
  2. android

[解決済み] リニアレイアウトに動的にコンテンツを追加する?

2023-07-09 13:48:25

質問

例えば、私がルートリニアレイアウトを定義した場合、その方向は垂直です。

main.xml :

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
      android:id="@+id/my_root"
      android:layout_height="wrap_content"
      android:layout_width="fill_parent"
      android:orientation="vertical"

    <!-- I would like to add content here dynamically.-->

</LinearLayout>

ルートリニアレイアウトの中に、複数の 子リニアレイアウト を追加し、各子リニアレイアウトの方向は 水平 . これらのすべてで、私は出力のようなテーブルを終了することができます。

例えば、ルートで というようなレイアウトになります。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
      android:id="@+id/my_root"
      android:layout_height="wrap_content"
      android:layout_width="fill_parent"
      android:orientation="vertical"

    <!-- 1st child (1st row)-->
    <LinearLayout 
        ...
       android:orientation="horizontal">

          <TextView .../>
          <TextView .../>
          <TextView .../>
    </LinearLayout>

     <!-- 2nd child (2nd row)-->
     ...
</LinearLayout>

子リニアレイアウトの数とその内容はかなり動的なので、プログラムによってルートリニアレイアウトに内容を追加することにしました。

2 番目のレイアウトを最初のレイアウトにプログラム的に追加し、各子供のすべてのレイアウト属性を設定し、子内部にさらに他の要素を追加するにはどうすればよいでしょうか。

どのように解決するのですか?

あなたの onCreate() で、次のように書きます。

LinearLayout myRoot = (LinearLayout) findViewById(R.id.my_root);
LinearLayout a = new LinearLayout(this);
a.setOrientation(LinearLayout.HORIZONTAL);
a.addView(view1);
a.addView(view2);
a.addView(view3);
myRoot.addView(a);

view1 , view2view3 はあなたの TextView s. これらはプログラムで簡単に作成できます。