1
FrameLayout frameLayout = new FrameLayout(this);
LinearLayout linearLayout1= new LinearLayout(this);
LinearLayout linearLayout2= new LinearLayout(this);

FrameLayout.LayoutParams params = new FrameLayout.LayoutParams(
LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);

params.gravity = Gravity.CENTER_VERTICAL;

frameLayout.addView(linearLayout1, params);

linearLayout1 の下に linearLayout2 を追加する方法

4

2 に答える 2

14

コードが機能するという知識に基づいています。

垂直線形レイアウトの FrameLayout を変更します。つまり、子を互いの下にレイアウトします。

LinearLayout parentLayout = new LinearLayout(this);
LinearLayout linearLayout1= new LinearLayout(this);
LinearLayout linearLayout2= new LinearLayout(this);

LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);

params.gravity = Gravity.CENTER_VERTICAL;

parentLayout.setOrientation(VERTICAL);
parentLayout.addView(linearLayout1, params);
parentLayout.addView(linearLayout2, params);
于 2013-07-12T22:32:23.097 に答える
1

FrameLayout ドキュメントには、次のように記載されています。

... 子ビューはスタックに描画され、最後に追加された子が一番上になります。FrameLayout のサイズは、その最大の子のサイズ (およびパディング) ...

したがって、(少なくとも簡単に)やりたいことを行うことはできません。ただし、ルートとしての LinearLayout はこれを自動的に行うため、使用を検討することをお勧めします...

お役に立てれば...

于 2013-07-12T22:33:02.777 に答える