我有一个活动要显示为弹出窗口。
我有以下代码,但活动显示在中心。我想在不同的位置展示它。可能在我的工具栏下。
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_popup_message);
DisplayMetrics dm = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(dm);
int width = dm.widthPixels;
int height = 120;
getWindow().setLayout((int) (width * .98), height);
答案 0 :(得分:1)
您需要获取当前视图窗口并设置该窗口的x和y参数。所以它将设置在理想的位置。
以下是我如何在欲望的地方设置对话框的示例。
Window window = getWindow();
// set "origin" to top left corner, so to speak
window.setGravity(Gravity.TOP | Gravity.START);
// after that, setting values for x and y works "naturally"
WindowManager.LayoutParams params = window.getAttributes();
params.x =selectedViewWidth;
params.y = selectedViewHeight/2;
window.setAttributes(params);
我个人认为,如果您想要显示弹出窗口,而不是使用活动,您还可以使用
PopupWindow
或DialogFragment
。您可以通过此控件更有效地进行管理。 有很多可用的教程。