PopupWindow没有显示

时间:2017-07-27 05:14:03

标签: android popupwindow popupmenu

我的应用中有一个PopupWindow。 这就是我初始化它的方式:

 string timesx2 = hr2[0]+":" + hr2[1];  //     19:22
 string s2 = DateTime.ParseExact(timesx2, "HHmm", CultureInfo.CurrentCulture)
    .ToString("hh:mm tt"); // output in localhost is: 7.22 PM 

这就是我试图展示它的方式:

final FrameLayout frameLayout = new FrameLayout(context);
frameLayout.setLayoutParams(new FrameLayout.LayoutParams(200, 200));
hashTagsWindow = new PopupWindow(frameLayout, ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
hashTagsWindow.setBackgroundDrawable(new ColorDrawable(Color.BLACK));

但是我的PopupWindow并没有显示出来。

我已经尝试解决问题了吗?:

  • hashTagsWindow.showAsDropDown(binding.hash, 20, 20); 包裹到.showAsDropDown(...).post(Runnable)

  • 应该显示PopupWindow的所有方法。

  • .runOnUiThread(Runnable)方法。

所有这些对我没有帮助。

同时,PopupMenu类正确显示在相同的上下文中。但我需要PopupWindow。

我该怎么做才能展示PopupWindow?

1 个答案:

答案 0 :(得分:0)

按照这种方法,可以帮助你。

private void showPopupWindow(View view){

    LayoutInflater mLayoutInflater=LayoutInflater.from(this);
    View mView=mLayoutInflater.inflate(R.layout.pop_up_layout, null);

    mPopupWindow = new PopupWindow(mView, ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT, true);
    // mPopupWindow=new PopupWindow(mView,,LayoutParams.WRAP_CONTENT);
    mPopupWindow.setContentView(mView);

    Button mBtnCancel=(Button) mView.findViewById(R.id.btn_cancel);
    mBtnCancel.setOnClickListener(this);

    mPopupWindow.showAsDropDown(view, 0, 0, Gravity.LEFT);

    mPopupWindow.setOnDismissListener(new PopupWindow.OnDismissListener() {
        @Override
        public void onDismiss() {
            Drawable d = new ColorDrawable(Color.WHITE);
            getWindow().setBackgroundDrawable(d);

        }

    });

}