android - 如何在按钮顶部创建对话框

标签 android android-layout android-dialog

我想创建一个在用户按下按钮时出现的对话框。 (实际上,这是一种当用户用耳机点击按钮时出现的音量控制)

我有一个对话框的布局文件(高度取决于内容) 在 onCreate 方法中,我尝试设置 gravity top|right 和自定义边距(与我的按钮相同)。

this.getWindow().setGravity(Gravity.TOP | Gravity.RIGHT);
WindowManager.LayoutParams lp = this.getWindow().getAttributes();
lp.x = x;
lp.y = y;

但我得到的只是一个居中的右侧对话框(不是右上角!),没有任何边距。

换句话说,我想在屏幕上的指定点绘制带有自定义布局的对话框。

最佳答案

实现此目的的最简单方法是使用相对布局

RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(WIDTH, HEIGHT);
params.topMargin = X;
params.leftMargin = Y;
yourRelativeLayout.addView(myDialog, params);

X 应该类似于 clickedX - WIDTH/2...

希望这对您有所帮助!

关于android - 如何在按钮顶部创建对话框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9884966/

相关文章:

java - 如何以编程方式将 Activity 主题化为对话?

java - ConcurrentModifcationException 偶尔发生

php - ICS (iCal) 发布/请求/取消

android - React Native Firebase : no custom sound, 无振动

android - 使用折叠工具栏和选项卡滚动

android - 为什么 Android Studio 在编辑 xml 文件或更改设计时会变慢?

Android - 广播接收器和服务之间的区别

android - CoordinatorLayout 中的 RelativeLayout 不滚动

android - DailogFragment - getArguments/setArguments - 为什么要在包中传递参数?