2012-03-09 76 views
-1

我有一個FrameLayout(所有的屏幕都是FL),在屏幕頂部有一個openGLview和一個標題圖像。現在我想顯示一個由LinearLayout創建的兩個按鈕的菜單。如何在屏幕頂部下方顯示100px的LinearLayout?

我的LL菜單必須懸浮在屏幕頂部以下100px的框架佈局上。

我該如何做到這一點?我嘗試了這個代碼,但不能正常工作,菜單被顯示在屏幕頂部100px以下,但它畫的是菜單的上半部分,我不需要那個,我需要的是上部的菜單不是用菜單的顏色繪製的。必須是浮動菜單。

我敢肯定,還有另一種方法可以在屏幕頂部下方繪製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 2012-03-09 13:33:03

+0

我想學習java佈局方式 – NullPointerException 2012-03-09 14:50:46

+2

[如何顯示LinearLayout菜單對齊到FrameLayout的右側,屏幕頂部下方100px]? 請不要發佈第二個問題,如果你不首先獲得足夠的答案。 (http://stackoverflow.com/questions/9634536/how-to-display-a-linearlayout-menu-aligned-to-the-right-of-a-framelayout-and-100) – Jave 2012-03-09 15:09:00

回答

2

問題是您使用padding而不是margins。任何填充都會獲得視圖的背景顏色,邊距不會。
您必須將邊距添加到您提供給視圖的LayoutParams。

0

如果您使用XML佈局,這將非常容易。您還可以查看您正在創建的內容並設置各個屬性。這還允許您將邏輯與視圖分開,並遵循MVVM設計模式,以便將來的更新更容易執行,從而爲您提供更靈活的系統。

+0

請告訴我如何用java代碼實現這一點,而不是用xml佈局 – NullPointerException 2012-03-09 14:50:34

相關問題