【发布时间】:2013-10-24 14:23:39
【问题描述】:
在我的 Android 应用程序中,我想在任何 Activity 之上显示一个视图,并且仍然将焦点放在该 Activity 上。我实际上使用Dialog 和下面的代码解决了这个问题:
Dialog progressDialog = new Dialog(getThisContext());
progressDialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
progressDialog.setContentView(R.layout.hint_view_layout);
TextView theText = (TextView) progressDialog.findViewById(R.id.hintText);
theText.setText("(Some Text)");
Window window = progressDialog.getWindow();
window.setFlags(WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL, WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL);
window.clearFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND);
window.setGravity(Gravity.BOTTOM);
progressDialog.show();
但问题是我的视图显示如下:
但是我的Dialog 的 xml 预览是这样的:
因此,使用上面的代码,我能够不使背景变暗并保持焦点与主要活动,但我怎样才能使Dialog 出现在应用程序中,就像在 xml 预览中一样?因为除了Dialog 背景之外,它并不完全位于视图的底部。
另外,我如何将onTouchListener 添加到对话框中,以便用户可以单击以将其关闭?
作为奖励,我将如何使 Dialog 从下向上出现?
谢谢, 牛顿
编辑#1:
在 ListView 中显示 Dialog 时,使用标志 FLAG_NOT_TOUCH_MODAL 可能会导致一些问题,因此请将其改为 FLAG_NOT_FOCUSABLE。
【问题讨论】:
标签: android android-activity dialog