Android 找出对话框何时显示在屏幕上

标签 android dialog

我需要找到 dialog 的一些元素的坐标.
但在对话框显示在屏幕上之前,所有方法都返回 0。
我如何才能知道对话框何时显示在屏幕上?

我的意思是在 dialog.show() dialog.isShowing() 返回 true 之后,但是

int width=mDialog.getWindow().getDecorView().getWidth();

返回 0

最佳答案

如果您需要确定对话框何时显示在屏幕上,您可以尝试通过 setOnShowListener 监听 onShow 事件:

final AlertDialog alertDialog = alertDialogBuilder.create(); 
alertDialog.setOnShowListener(new OnShowListener() { 
    @Override 
    public void onShow(DialogInterface dialog) { 
        int width = alertDialog.getWindow().getDecorView().getWidth(); 
        Toast.makeText(getApplicationContext(), String.valueOf(width) Toast.LENGTH_LONG).show();             
    } 
});   
alertDialog.show();

关于Android 找出对话框何时显示在屏幕上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21761223/

相关文章:

android - 在 Dialog 中使用 Scrollview 时出现问题

android - 如何在 Cordova webview 中加载和导航网站

C++加载图像到对话框MFC

android - 如何删除自定义对话框的矩形框

Android 有时我得到 android.app.RemoteServiceException : Bad notification posted from package. 为什么?

Flutter - 在对话窗口中更改 CircularProgressIndicator 的大小

javascript - jquery-ui 对话框未居中,关闭按钮奇怪的行为

android - 我可以在多个线程中从 kotlin 集合中拆分 mapIndexed 工作吗?

php - 将来自 MySql 的动态数据显示到 Android 表中

android - 使用 dispose handler rxjava 创建 Observable