Closed yong396040003 closed 3 years ago
public static class TestDialogFragment extends DialogFragment { View.OnClickListener mOnClickListener; @Nullable @Override public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { View contentView = inflater.inflate(R.layout.dialog_fragment_api_constructor, container, false); View tvShow = contentView.findViewById(R.id.tv_show); tvShow.setOnClickListener(v -> { //if (mOnClickListener != null) { DemoPopup curPopup = new DemoPopup(this); curPopup.setPopupGravity(Gravity.BOTTOM); //测试demo中,这个curPopup无法显示到tvShow的底部 curPopup.showPopupWindow(tvShow); // } }); return contentView; } @Override public void onStart() { super.onStart(); Window dialogWindow = getDialog().getWindow(); if (dialogWindow != null) { WindowManager.LayoutParams lp = dialogWindow.getAttributes(); lp.width = Math.round(UIHelper.getScreenWidth() * 0.8f); lp.height = ViewGroup.LayoutParams.WRAP_CONTENT; lp.gravity = Gravity.CENTER; dialogWindow.setAttributes(lp); } } public TestDialogFragment setOnClickListener(View.OnClickListener onClickListener) { mOnClickListener = onClickListener; return this; } }
//测试demo中,这个curPopup无法显示到tvShow的底部
最后显示结果是这样的
这是因为popup要超出屏幕了,所以会顶回来
请问一下,如何把下面的popupWindow放在上面《请点击我弹出basePopup》文字下面呢?
textview改为wrap_content咯。。。demo中我写了300dp,所以才会离文字那么远
不好意思,是我的问题,我当前用的版本是2.2.3的,当我升级到2.2.20的时候问题就解决了,感谢。
//测试demo中,这个curPopup无法显示到tvShow的底部