Articles of popupwindow

android:在我的webview中打开popup窗口

我在我的应用程序中有webview,我希望它在单击webview中的链接时打开popup窗口。 我添加了以下代码,但它不起作用: – WebSettings webSettings = webViewPage.getSettings(); webSettings.setJavaScriptEnabled(true); webSettings.setSupportMultipleWindows(true); webSettings.setJavaScriptCanOpenWindowsAutomatically(true); popup窗口应该是这样的

按键长按的Android软键盘popup视图

我正在开发Android软键盘: public class CustomKeyboard extends Keyboard{…} public class CustomKeyboardView extends KeyboardView{…} public class CustomKeyboardIME extends InputMethodService implements KeyboardView.OnKeyboardActionListener{…} 在某些键上,我有popupKeyboard和popupCharacters: XML / key_popup.xml: 但是当我长按“0”键popup“)”显示时,它会一直停留在那里,直到我按下“X”按钮或“)”字符。 而且我希望它只在我按住手指时打开。 像iPhone键盘上的东西: 有人可以帮忙吗? 谢谢!!

打开一个PopupWindow,让外面的东西仍然可以触摸

如何在Android上打开PopupWindow并让所有其他组件都可以触摸而不会忽略PopupWindow? 这就是它的创建方式: public class DynamicPopup { private final PopupWindow window; private final RectF rect; private final View parent; private final RichPageView view; public DynamicPopup(Context context, RichPage page, RectF rectF, View parent) { this.parent = parent; rect = rectF; window = new PopupWindow(context); window.setBackgroundDrawable(new BitmapDrawable()); window.setWidth((int) rect.width()); window.setHeight((int) rect.height()); window.setTouchable(true); window.setFocusable(true); window.setOutsideTouchable(true); view = new RichPageView(context, […]

在目标android 26的所有窗口上方显示PopupWindow

我想在没有请求SYSTEM_ALERT_WINDOW情况下在所有窗口上显示PopupWindow (例如:另一个popup窗口,对话框,另一个活动屏幕),所以我使用WindowManager.LayoutParams.TYPE_TOAST public void showSimplePopupWindow() { final View popupView = layoutInflater.inflate(R.layout.popup_layout_2, null); final PopupWindow popupWindow = new PopupWindow(popupView); …config popup window… PopupWindowCompat.setWindowLayoutType(popupWindow, WindowManager.LayoutParams.TYPE_TOAST); popupWindow.showAsDropDown(findViewById(R.id.button_show_popup_window)); } 如果我设置targetSdkVersion < 26它在所有Android版本中运行良好。 目前,如果我保留上面的代码并将目标targetSdkVersion更新为26,那么它将与设备api 25-26崩溃,exceptionandroid.view.WindowManager$BadTokenException: Unable to add window — token android.view.ViewRootImpl$W@859d91f is not valid; is your activity running? android.view.WindowManager$BadTokenException: Unable to add window — token android.view.ViewRootImpl$W@859d91f is not valid; […]

Android-向布局添加视图,使布局位于ActionBar前面

我有一个视图,我正在创建一个PopupWindow 。 在这个PopupWindow ,我有一个文本框( EditText )。 单击以编辑文本时,键盘将打开,整个视图会上升,但视图顶部会平滑地位于操作栏视图下方 。 到现在为止还挺好。 我现在已经添加了一个没有任何进一步配置的空GridView到PopupWindow ,现在同样的情况发生但视图的整个顶部位于操作栏视图的顶部并且不平滑(当键盘消失时,popup窗口变得一团糟popup窗口位置会在几秒钟内发生变化,键盘上会有“剩余时间”,持续一秒钟。 它也发生在ListView 。 我希望视图的顶部可以顺利地进入’ActionBar`。 有任何想法吗? 更新:通过以编程方式添加GridView我在一些设备上部分地解决了它,但在某些设备上它仍然会发生。 显示popupwindow : pView=inflater.inflate(R.layout.activity_packbuild, (ViewGroup)mainActivity.findViewById(R.layout.activity_main)); pw = new PopupWindow( pView, ma.f.getView().getMeasuredWidth(), ma.f.getView().getMeasuredHeight(), true); pw.showAtLocation(mainActivity.getWindow().getDecorView().findViewById(android.R.id.content), Gravity.BOTTOM, 0, 0); 好: 坏: 布局: 我正在以编程方式添加GridView : gv=new GridView(ma); List hhh=new ArrayList(); if (FriendPickerApplication.selectedUsers!=null) { if (FriendPickerApplication.selectedUsers.size() > 0) { for (GraphUser gu : FriendPickerApplication.selectedUsers) […]

PopupWindow在某些设备的状态栏上方

这是我显示PopupWindow代码 View rootView = activity.getWindow().getDecorView().getRootView(); mPopupWindow.showAtLocation(rootView, Gravity.NO_GRAVITY, 0, 0); 当我在Samsung Nexus设备上测试时,它显示在状态栏下方 然而,当我在Sony设备上测试时,它显示在状态栏上方 (如下图所示) 那么哪个设备显示正确或我做错了什么? 任何帮助或建议将非常感谢

PopupWindow背景有时变得透明和紫色

这是我创建PopupWindow : private static PopupWindow createPopup(FragmentActivity activity, View view) { PopupWindow popup = new PopupWindow(view, ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT, true); popup.setOutsideTouchable(true); popup.setFocusable(true); popup.setBackgroundDrawable(new ColorDrawable(Tools.getThemeReference(activity, R.attr.main_background_color))); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) popup.setElevation(Tools.convertDpToPixel(8, activity)); PopupWindowCompat.setOverlapAnchor(popup, true); return popup; } main_background_color是纯色,白色或黑色,具体取决于主题。 有时发生以下情况 我怎么能避免这个? 它只发生在使用android 6 SOMETIMES的模拟器中…例如,正常情况下, PopupWindow背景按预期工作… 编辑 另外,这是我的getThemeReference方法: public static int getThemeReference(Context context, int attribute) { TypedValue typeValue = new […]

android popupwindow位于虚拟键盘之上

我有一个popup窗口,其底部或我的屏幕上出现了一个广告。 我是这样做的,因此用户可以点击x来关闭广告。 当popUpWindow处于活动状态时虚拟键盘出现时,广告仍然可见。 如何让键盘对popUpWindow有所保留,或者告诉popUpWindow不在最顶层?

如何在列表视图中单击项目?

我一直在努力寻找解决方案,但收效甚微。 我必须显示一个包含项目列表的popup窗口 。 我能够显示窗口,但单击列表视图中的项目时未调用onitemclicklistener 。 任何有关此问题的帮助将不胜感激。 谢谢 EDIT1: public class PopUpWindowActivity extends Activity { /** Called when the activity is first created. */ String[] countries = new String[] { “India”, “USA”, “Canada” }; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); LinearLayout ll = new LinearLayout(this); ListView lv = new ListView(this); lv.setAdapter(new ArrayAdapter (this, android.R.layout.simple_list_item_1, countries)); lv.setOnItemClickListener(new […]

我想根据android中的标题大小在运行时设置popup窗口宽度

我尝试了很多东西,但没有得到任何解决方案,我在运行时设置文本,我需要popup的宽度根据文本大小LinearLayout viewGroup =(LinearLayout)((Activity)context).findViewById(R.id.popup); LayoutInflater layoutInflater = (LayoutInflater) context .getSystemService(Context.LAYOUT_INFLATER_SERVICE); View layout = layoutInflater.inflate(R.layout.popup_layout, viewGroup); title_tv = (TextView) layout.findViewById(R.id.popup_txt); title_tv.setText(title_P); PopupWindow popup = new PopupWindow(context); final float SCALE = layout.getResources().getDisplayMetrics().density; int mode = MeasureSpec.getMode(View.MeasureSpec.UNSPECIFIED); int measuredWidth = MeasureSpec.getSize(View.MeasureSpec.UNSPECIFIED); popup.setWidth(measuredWidth); popup.setHeight(60); popup.setContentView(layout); //popup.setWindowLayoutMode(); popup.setFocusable(true);