Android 位于EditText布局顶部的AlertDialog,不显示键盘
我有一个包含EditText输入字段的布局,在这个布局的顶部我弹出一个AlertDialog(广告)。问题是,当点击编辑文本时,软键盘不会弹出。是否有任何解决办法来达到这一要求 布局:Android 位于EditText布局顶部的AlertDialog,不显示键盘,android,Android,我有一个包含EditText输入字段的布局,在这个布局的顶部我弹出一个AlertDialog(广告)。问题是,当点击编辑文本时,软键盘不会弹出。是否有任何解决办法来达到这一要求 布局: <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.a
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/activity_secondary"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="inova.lk.com.librarytestapp.main.SecondaryActivity">
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="20dp"
android:layout_margin="20dp"
android:hint="Enter Name"
android:focusableInTouchMode="true"
android:layout_centerInParent="true"/>
</RelativeLayout>
更新*****
我正在开发一个像GoogleADZ这样的广告SDK。AlertDialog是我的adz横幅。edittext版面顶部的横幅是一种场景。因此,我想要一个解决方案,它不需要使用我的SDK的用户进行任何更改。将这些行放在dialog.show()之前 我正在弹出一个AlertDialog(广告)
为什么必须使用AlertDialog?由于您的广告始终放在版面顶部,您可能不需要AlertDialog,只需使用框架版面并将其放在版面顶部上方即可。从xml“android:focusableInTouchMode=“true”中删除这一行可能重复的:@rafsanahmad007请阅读问题。这里我要说的是另一种情况。您指出的那个问题是关于当EditText包含在AlertDialog内部时会发生什么。@RajshreeTiwari我试过了,但仍然不起作用。Thanks@MilanJayawardane不是重复的Downvoter…只是一个检查的建议…我正在开发一个SDK,有adz类型(比如google adz)。例如,顶部横幅、底部横幅、全屏横幅等。如果我提供自定义视图,那么开发人员可以将该视图放置在布局中的任何位置。因此,我将无法强制开发人员放置顶部横幅、底部横幅等。如果EditText包含在AlertDialog中,这将起作用。谢谢,我正在开发一个像GoogleADZ这样的广告SDK。AlertDialog是我的adz横幅。edittext版面顶部的横幅是一种场景。因此,我想要一个解决方案,它不需要用户自己做任何更改。谢谢你想在屏幕上加载提醒对话框广告时显示键盘吗?实际上这只是一个场景。如果开发人员使用my SDK在其页面中显示包含EditText输入字段的顶部横幅,则在关闭横幅之前,他无法与这些输入字段交互(软键盘不会弹出)。但是onclick,类似滚动的函数可以正常工作,这和这个问题类似
final Dialog dialog = new Dialog(activity);
dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
dialog.setContentView(inova.lk.com.inapplibrary.R.layout.custom_dialog_layout);
dialog.setCancelable(false);
Window window = dialog.getWindow();
window.setFlags(
WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL,
WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL
);
window.clearFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND);
window.setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
WindowManager.LayoutParams wmlp = dialog.getWindow().getAttributes();
wmlp.width = Utility.dpToPx(320);
wmlp.height = Utility.dpToPx(50);
dialog.show();
try{
dialog.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_VISIBLE);
}catch (Exception e){
e.printStackTrace();
}