PopWindow低版本无法显示问题

本文详细探讨了在低版本手机上使用PopWindow时遇到的显示及点击事件错乱问题,并提供了有效的解决方案。通过调整PopWindow的属性设置,可以确保其在不同版本设备上的正常显示和交互。

敬:逝去的爱人,祝……有多远死多远?

环境:

popwindow在低版本比如5.0  6.0上无法显示的问题

其实是显示的,只是看不到,毕竟动画、方法都调用了。

解决方法: 

   mFreedomPopup_right = FreedomPopup.getRVPopup(getActivity(), mFreedomPopupVM);
   mFreedomPopup_right.setBg(R.drawable.icon_logo_change_bg);
   mFreedomPopup_right.setAnimationStyle(R.style.FanfareKnowledgePopupTop);
   mFreedomPopup_right.setOutsideTouchable(true);//复制
   mFreedomPopup_right.setWidth(ViewGroup.LayoutParams.WRAP_CONTENT);//复制
   mFreedomPopup_right.setHeight(ViewGroup.LayoutParams.WRAP_CONTENT);//复制
   mFreedomPopup_right.setFocusable(true);//复制
   mFreedomPopup_right.showAtLocation(binding.llModuleFather,Gravity.END | Gravity.TOP, 20, ScreenSizeUtils.INSTANCE.dip2px(70));

看到那四条后边写着该死的“复制” 的属性了么,对,复制!粘贴,完事。

 

好了,下一个问题: popwindow在低版本手机上的点击事件错乱问题,经多方测试(开发和测试人员多次点击、更换手机、各种百度)结果确定在低版本手机上是会出现popwindow手机弹窗部分位置点击不了的情况。不予处理

 

 

package com.dubu.rtc.measure; import android.graphics.Color; import android.graphics.drawable.ColorDrawable; import android.util.Log; import android.view.Gravity; import android.view.View; import android.view.WindowManager; import android.widget.FrameLayout; import android.widget.PopupWindow; public class KeyBoardHeightHelperOld { private static final String TAG = "KeyBoardHeightHelperOld"; private PopupWindow popwindow; private int start; private static int keyBoardHeight; public void showMeasureWindow(View view, OnMeasureCompleteListener onMeasureCompleteListener) { Log.i(TAG, "showMeasureWindow"); view.post(new Runnable() { @Override public void run() { popwindow = new PopupWindow(); FrameLayout contentView = new MeasureLayout(view.getContext(), new MeasureLayout.onHeightChangedListener() { @Override public void onHeightChanged(int height) { if (start == 0) { start = height; } else if (height < start) { keyBoardHeight = start - height; if (onMeasureCompleteListener != null) { onMeasureCompleteListener.onKeyBoardShow(keyBoardHeight); } } else { if (onMeasureCompleteListener != null) { onMeasureCompleteListener.onKeyBoardHide(); } } } }); popwindow.setContentView(contentView); popwindow.setWidth(100); popwindow.setHeight(WindowManager.LayoutParams.MATCH_PARENT); popwindow.setBackgroundDrawable(new ColorDrawable(Color.RED)); popwindow.setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE); popwindow.setInputMethodMode(PopupWindow.INPUT_METHOD_NEEDED); popwindow.showAtLocation(view.getRootView(), Gravity.NO_GRAVITY, 0, 0); } }); } public void onDetached() { if (popwindow != null) { popwindow.dismiss(); } } public static int getKeyBoardHeight() { return keyBoardHeight; } public interface OnMeasureCompleteListener { void onKeyBoardShow(int keyBoardHeight); void onKeyBoardHide(); } } 这个帮助类中 有些手机键盘弹出键盘的时候 没有获取到键盘高度 怎么解决?
最新发布
07-08
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值