1


Framelayout を動的に作成しています。
以下のように、レイアウト パラメータを動的に設定します。

   float  weights[] = {80,20} <br>
   FrameLayout flayout = new FrameLayout(context); 
   LayoutParams  lp = new LinearLayout.LayoutParams
                         (LayoutParams.MATCH_PARENT,0,weights[i]; 
   flayout.setLayoutParams(lp);


ここでの問題は、LayoutParams で高さパラメーターを 0 に設定しようとしていますが、それでも match_parent を取得し、最初のフレームレイアウトが画面の高さの 20% (実際には 80 になるはず) を占め、2 つ目のフレームレイアウトが 80% になるように表示することです。逆に起こります。
誰でもこの問題を整理するのを手伝ってくれますか?


前もって感謝します、

4

2 に答える 2

0

私自身が解決策を見つけました。これらの2つのフレームレイアウトを保持するviewGroup(LinearLayout)の高さは、match_parentとして設定する必要があります。以前は、正しくないwrap_Contentとして設定されていました。

于 2012-12-04T18:20:50.567 に答える
0

このコードを試してください。

  FrameLayout flayout = new FrameLayout(contex); 
  LayoutParams  lp = (LayoutParams) flayout.getLayoutParams();
  lp.height = 0;
  lp.width = LayoutParams.MATCH_PARENT;
  flayout.setLayoutParams(lp);
于 2012-12-04T19:02:19.433 に答える