弹出活动的位置

时间:2016-06-08 04:03:35

标签: android-studio android-6.0-marshmallow

我有一个活动要显示为弹出窗口。

我有以下代码,但活动显示在中心。我想在不同的位置展示它。可能在我的工具栏下。

     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);

1 个答案:

答案 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);
  

我个人认为,如果您想要显示弹出窗口,而不是使用活动,您还可以使用PopupWindowDialogFragment。您可以通过此控件更有效地进行管理。   有很多可用的教程。