EditDialog位于EditText布局之上,未显示键盘

时间:2017-04-06 07:43:00

标签: android

我有一个包含EditText输入字段的布局,在此布局之上我弹出一个AlertDialog(广告)。问题是单击EditText时没有弹出SoftKeyBoard。是否有任何工作来实现这一要求?

enter image description here

布局:

<?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>

AlertDialog:

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();

UPDATE *****

我正在开发像google adz这样的广告SDK。 AlertDialog是我的adz横幅。编辑文本布局顶部的横幅是一种情况。因此,我想要一个不需要使用我的SDK的用户进行任何更改的解决方案。

2 个答案:

答案 0 :(得分:0)

将这些行放在dialog.show();

之前
try{ 
      dialog.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_VISIBLE);
   }catch (Exception e){
      e.printStackTrace();
      }

答案 1 :(得分:0)

  

我弹出一个AlertDialog(广告)。

为什么你必须使用AlertDialog?由于您的广告始终位于布局的顶部,因此您可能不需要AlertDialog,而只需使用FrameLayout并将其放置在布局顶部之上。