当前位置: 首页 > 知识库问答 >
问题:

当键盘在片断中打开时警报对话框不向上移动

越胤
2023-03-14
private void AlertEditMode(final MyIshVo myIshVo) {
    final LinearLayout linearLayout=new LinearLayout(getContext());
    final EditText edittext = new EditText(getContext());
    LinearLayout.LayoutParams layoutParams =new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT,LinearLayout.LayoutParams.WRAP_CONTENT);
    layoutParams.setMargins(50,0,50,0);
    edittext.setLayoutParams(layoutParams);
    linearLayout.addView(edittext);
    final AlertDialog dialog = new AlertDialog.Builder(getContext())
            .setView(linearLayout)
            .setTitle("Instant Share")
            .setPositiveButton(android.R.string.ok, null) //Set to null. We override the onclick
            .setNegativeButton(android.R.string.cancel, null)
            .create();


    // relativeLayout.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN);

    edittext.setText(myIshVo.getMish_name());

    edittext.setSelection(edittext.getText().length());
    dialog.setOnShowListener(new DialogInterface.OnShowListener() {

        @Override
        public void onShow(final DialogInterface dialog) {

            Button button = ((AlertDialog) dialog).getButton(AlertDialog.BUTTON_POSITIVE);
            button.setOnClickListener(new View.OnClickListener() {

                @Override
                public void onClick(View view) {
                    String ish_title = edittext.getText().toString().trim();
                    String instant_share_Id=myIshVo.getMinstant_share_Id();
                    if(ish_title==null || ish_title.equalsIgnoreCase("") || ish_title.contains("<") || ish_title.contains("\\") ){
                        //showToastMessage("Title should not be Empty");
                        edittext.setError("Please enter valid title.");
                    }else{
                        presenter.setEditIsh(ish_title,instant_share_Id);
                        dialog.dismiss();
                    }
                }
            });
        }
    });
    dialog.show();
   // dialog.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);

}
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);

[![检查图像][1]][1]

共有1个答案

巴星华
2023-03-14

当显示AlertDialog活动具有半透明状态栏主题时,我就遇到过这个问题。

因此,我没有使用经典的AlertDialog.builder(context)来初始化构建器,而是显式地传递一个没有半透明状态栏的对话框主题给它:

AlertDialog.Builder(context, android.R.style.Theme_DeviceDefault_Light_Dialog_NoActionBar)

我选择这个主题是因为它确保了与Lollipop之前的设备的兼容性,但是Android.r.style.theme_material_dialog等其他主题也应该做到这一点。

 类似资料:
  • 这是我的自定义警报对话框代码- 问题是,底部的编辑文本字段隐藏在软键盘后面。我尝试在特定活动中将android清单更新为android:WindowsoftinPutmode=“adjustresize”,但没有成功。有什么解决办法吗?

  • 我有一个自定义的Spinner类,它使用一个警报对话框来显示它的内容,它有“提交”和“取消”按钮。警报对话框有一个编辑文本,其他都是只读标签。在单击编辑文本时,虚拟键盘出现,它移动布局,向上移动位,但按钮保持隐藏。我希望按钮也是可见的。 在活动类中:-this.getWindow().setSoftinPutMode(Windowmanager.layoutParams.soft_input_ad

  • 我正在使用新的JavaFX Alert类(Java1.8_40),并尝试在exibition文本中使用HTML标记,但到目前为止还没有成功。下面是我正在尝试做的一个例子。 有没有人知道这是不是真的可能,给我举个例子? 提前道谢。

  • 我已经为从位置列表中选择位置创建了警报框。下面是代码 观察我用实现的代码,它只在工作,但也需要在工作。我如何做到这一点?? 您可以看到屏幕截图光标正在闪烁,被填充,用户键盘也被填充。我只需要弹出选择限制用户手动输入文本。也会发生一些事情。

  • 我想移动我的布局,其中有几个视图,所以当用户触摸编辑文本,然后键盘打开,我的布局小部件上升。我甚至在清单Android:WindowsoftinPutmode=“AdjustPan”中使用了代码,然后Android:WindowsoftinPutmode=“AdjustPanAdjustStrezsize”没有任何工作,所以请帮助我 这里是我的xml

  • 我在antoher的项目中有完全相同的代码,但它在这里继续崩溃。我有。我真的不确定问题出在哪里。我尝试过切换gradle版本,从切换到。不管怎样,一切都失败了