Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/191.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/visual-studio-code/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 在软键盘顶部显示弹出窗口_Android_Android Edittext_Android Softkeyboard_Popupwindow_Android Popupwindow - Fatal编程技术网

Android 在软键盘顶部显示弹出窗口

Android 在软键盘顶部显示弹出窗口,android,android-edittext,android-softkeyboard,popupwindow,android-popupwindow,Android,Android Edittext,Android Softkeyboard,Popupwindow,Android Popupwindow,我正试图在我的编辑文本顶部显示我的弹出窗口(有软键盘),我该怎么做?考虑我的编辑文本有代码> Android:Max行=“5”< /代码>,Y位置并不总是相同的。这就是我到目前为止得到的 private void createPopUpWindow() { View newView = getActivity().getWindow().getDecorView(); // this = activity int[] loc = new int[2]; pivot.ge

我正试图在我的编辑文本顶部显示我的弹出窗口(有软键盘),我该怎么做?考虑我的编辑文本有代码> Android:Max行=“5”< /代码>,Y位置并不总是相同的。这就是我到目前为止得到的

private void createPopUpWindow() {
    View newView = getActivity().getWindow().getDecorView(); // this = activity

    int[] loc = new int[2];
    pivot.getLocationInWindow(loc);
    int topOfPivot = loc[1];

    Integer positionY = topOfPivot;
    popupWindow.setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);
    popupWindow.showAtLocation(newView, Gravity.BOTTOM, 0, positionY);

    frameLayout.getForeground().setAlpha(15);
    editText.setSelection(editText.getText().length());
}
有什么建议吗


如果检测到键盘已打开,最好在页面底部放置一个布局。当键盘打开时,你的应用程序会自动调整大小并调用
onConfigurationChanged
。问题是弹出窗口并不总是显示,它会根据键入的内容显示,因此onConfigurationChanged不能作为触发器,弹出窗口的触发器是我的editText.addTextChangedListenerok。那就更容易了。您应该能够使用相对布局,只需将此布局放入其中即可
android:layout\u alignParentBottom=“true”
,高度为
wrap\u content
。设置此布局,直到您的侦听器调用它。如果您检测到键盘已打开,您最好在页面底部放置一个布局。当键盘打开时,你的应用程序会自动调整大小并调用
onConfigurationChanged
。问题是弹出窗口并不总是显示,它会根据键入的内容显示,因此onConfigurationChanged不能作为触发器,弹出窗口的触发器是我的editText.addTextChangedListenerok。那就更容易了。您应该能够使用相对布局,只需将此布局放入其中即可
android:layout\u alignParentBottom=“true”
,高度为
wrap\u content
。设置此布局,直到您的侦听器调用它。