如何在屏幕顶部下方显示LinearLayout 100px



我有一个FrameLayout(所有屏幕都是FL),它在屏幕顶部有一个openGLview和一个标题图像。现在我想显示一个由两个按钮组成的菜单,用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);     

问题是您使用的是padding而不是margins。任何填充都会获得视图的背景色,而边距则不会
您必须将页边距添加到为视图提供的LayoutParams中。

如果使用XML布局,这将非常容易。您还可以查看正在创建的内容并设置各个特性。这还允许您将逻辑与视图分离,并遵循MVVM设计模式,以便将来更容易执行更新,从而为您提供更灵活的系统。

最新更新