WindowManager.LayoutParams - 如何在右下角放置一个按钮

时间:2014-02-24 16:22:51

标签: android android-layout overlay

我想使用以下代码在角落添加叠加按钮:

int width = 100; //button width
int height = 50; 
int x = 400;
int y = 50;
WindowManager.LayoutParams params = new WindowManager.LayoutParams(width, height, x, y,
            WindowManager.LayoutParams.TYPE_SYSTEM_ALERT, 
            WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE | 
            WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL | 
            WindowManager.LayoutParams.FLAG_WATCH_OUTSIDE_TOUCH, 
            PixelFormat.OPAQUE);

但它在左上角添加了按钮,使布局填满整个屏幕。

我是否传递了无效值,使所有内容重置为默认值?

如何将该按钮放在角落?

2 个答案:

答案 0 :(得分:0)

对layoutParams使用RelativeLayout

RelativeLayout.LayoutParams layoutParams = new LayoutParams(width, height);
layoutParams.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM);
layoutParams.addRule(RelativeLayout.ALIGN_PARENT_RIGHT);`
button.setLayoutParams(layoutParams);

之后在父相对布局中添加按钮。

答案 1 :(得分:0)

...几年后,遇到了类似的问题。解决方案是LayoutParams上的重力:

WindowManager.LayoutParams params = ...;
params.gravity = Gravity.BOTTOM | Gravity.RIGHT;