Android dialog根据点击按钮位置在上或下显示
时间: 2024-02-05 11:10:56 浏览: 172
你可以使用Dialog的setGravity()方法来设置对话框的位置。如果你想根据点击按钮的位置在上或下显示,可以在按钮的onClick()方法中获取按钮的位置,然后根据位置设置对话框的位置。
以下是示例代码:
```java
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
// 获取按钮在屏幕上的位置
int[] location = new int[2];
view.getLocationOnScreen(location);
int x = location[0];
int y = location[1];
// 创建对话框并设置位置
final Dialog dialog = new Dialog(MainActivity.this);
dialog.setContentView(R.layout.dialog_layout);
Window window = dialog.getWindow();
if (window != null) {
WindowManager.LayoutParams params = window.getAttributes();
if (y < getWindowManager().getDefaultDisplay().getHeight() / 2) {
// 如果按钮在屏幕上半部分,则对话框显示在按钮下方
params.gravity = Gravity.TOP | Gravity.CENTER_HORIZONTAL;
} else {
// 如果按钮在屏幕下半部分,则对话框显示在按钮上方
params.gravity = Gravity.BOTTOM | Gravity.CENTER_HORIZONTAL;
}
window.setAttributes(params);
}
dialog.show();
}
});
```
在上面的代码中,我们首先获取按钮在屏幕上的位置,然后判断按钮在屏幕上半部分还是下半部分。如果在上半部分,则对话框显示在按钮下方;如果在下半部分,则对话框显示在按钮上方。最后,我们设置对话框的位置并显示对话框。
阅读全文