2012-03-09 17 views
-1

私はFrameLayoutを持っています(すべての画面はFLです)。スクリーンの上部には、OpenGLviewとヘッダーイメージがあります。今私は、LinearLayoutで作成された2つのボタンのメニューを表示したい。LinearLayoutを画面上部の100ピクセル下に表示するにはどうすればよいですか?

私のLLメニューは、画面の上端から100ピクセル下のフレームレイアウトにフローティングする必要があります。

どうすれば実現できますか?私はこのコードを試してみましたが、正しく動作していません。メニューは画面上部に100ピクセル下に表示されています。メニューの上部をペイントしています。それはメニューの色で塗られていません。フローティングメニューである必要があります。

メニューの上部をメニューの色で塗りつぶすことなく、画面の上部の下に100pxのメニューを描く別の方法があると確信しています。 (上部色の問題を有する)

マイコード:

 ///////////////sub menu de shareit//////////////// 
    LinearLayout sharellContainer = new LinearLayout(this); 
    sharellContainer.setOrientation(LinearLayout.HORIZONTAL); 
    LinearLayout sharell = new LinearLayout(this); 
    sharell.setOrientation(LinearLayout.VERTICAL); 
    sharell.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT)); 
    //LinearLayout.LayoutParams sharellParams = new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); 
    //sharellParams.gravity=Gravity.CENTER; 
    sharell.setPadding(10, shareit.getHeight()+80, 10, 10); 
    sharell.setBackgroundColor(0xFF383838); 
    //sharell.setLayoutParams(sharellParams); 

    share= new ImageButton(this); 
    selector(share, R.drawable.but_share_up,R.drawable.but_share_down); 
    LinearLayout.LayoutParams shareParams = new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); 
    shareParams.setMargins(0, 0, 0, 10); //dejo un espacio entre este botón y el siguiente 
    share.setLayoutParams(shareParams); 
    sharell.addView(share); 

    web= new ImageButton(this); 
    selector(web, R.drawable.but_web_up,R.drawable.but_web_down); 
    sharell.addView(web); 

    sharellContainer.addView(sharell); 
    sharellContainer.setGravity(Gravity.RIGHT); 

    ////////////////////////////////////////////////// 

。 。 。

 fl.addView(squareGLSurfaceView); 
    fl.addView(rl); 
    fl.addView(sharellContainer); 
    setContentView(fl);  
+0

なぜXMLでレイアウトを作成しないのか聞いてもよろしいですか? – Jave

+0

私はJavaレイアウトの方法を学びたい – NullPointerException

+2

[FrameLayoutの右側にLinearLayoutメニューを表示する方法と画面の上部の下に100pxを表示する方法] 2番目の質問を投稿しないでください最初に十分な答えを得てください。 (http://stackoverflow.com/questions/9634536/how-to-display-a-linearlayout-menu-aligned-to-the-right-of-a-framelayout-and-100) – Jave

答えて

2

marginsではなく、paddingを使用しているという問題があります。すべてのパディングがビューの背景色を取得し、マージンは表示されません。
ビューに与えるLayoutParamsに余白を追加する必要があります。

0

これはXMLレイアウトを使用すると非常に簡単です。また、作成しているものを表示したり、個々のプロパティを設定することもできます。これにより、ビューとロジックを分離してMVVMデザインパターンに準拠させることができ、将来のアップデートがより簡単に実行できるようになり、より柔軟なシステムが実現します。

+0

私はJavaコードではなくXMLコードでこれを達成する方法を教えてください – NullPointerException

関連する問題