如何在屏幕顶部下方显示100px的LinearLayout?
我有一个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);
问题是您使用padding
而不是margins
。任何填充都会获得视图的背景颜色,边距不会。
您必须将边距添加到您提供给视图的LayoutParams。
如果您使用XML布局,这将非常容易。您还可以查看您正在创建的内容并设置各个属性。这还允许您将逻辑与视图分开,并遵循MVVM设计模式,以便将来的更新更容易执行,从而为您提供更灵活的系统。
请告诉我如何用java代码实现这一点,而不是用xml布局 – NullPointerException 2012-03-09 14:50:34
请问为什么不用XML创建布局? – Jave 2012-03-09 13:33:03
我想学习java布局方式 – NullPointerException 2012-03-09 14:50:46
[如何显示LinearLayout菜单对齐到FrameLayout的右侧,屏幕顶部下方100px]? 请不要发布第二个问题,如果你不首先获得足够的答案。 (http://*.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