动态更改Android应用程序对话框窗口的宽度

动态更改Android应用程序对话框窗口的宽度,android,dialog,Android,Dialog,我正在创建一个Android应用程序。在该应用程序中,我使用 显示来自服务器的HTML内容的对话框窗口 一边我使用下面的方法创建了对话框窗口 private void displayDialogWindow(String html) { // here I have created new dialog window dialog = new Dialog(cordova.getActivity(), android.R.styl

我正在创建一个Android应用程序。在该应用程序中,我使用 显示来自服务器的HTML内容的对话框窗口 一边我使用下面的方法创建了对话框窗口

private void displayDialogWindow(String html) {

        // here I have created new dialog window
        dialog = new Dialog(cordova.getActivity(),
                android.R.style.Theme_NoTitleBar);
        dialog.getWindow().getAttributes().windowAnimations =
android.R.style.Animation_Dialog;
        dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
        dialog.setCancelable(true);


        // creates a new webview to display HTML and attached to
dialog to display
        webview = new WebView(cordova.getContext());
        webview.setLayoutParams(new LinearLayout.LayoutParams(
                LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));
        webview.setWebChromeClient(new WebChromeClient());
        webview.requestFocusFromTouch();

        final String mimeType2 = "text/html";
        final String encoding2 = "UTF-8";
        webview.loadDataWithBaseURL("", html, mimeType2, encoding2, "");
        dialog.setContentView(webview);

        // get the screen size of the device
        WindowManager wm = (WindowManager) ctx
                .getSystemService(Context.WINDOW_SERVICE);
        Display display = wm.getDefaultDisplay();
        Point size = new Point();
        display.getSize(size);
        int width = size.x;
        int height = size.y;

        // set appropriate sizes to the dialog window whether there is
side menu or not
        lp.copyFrom(dialog2.getWindow().getAttributes());
        lp.width = width ;
        lp.height = height - 100;
        dialog.getWindow().setAttributes(lp2);

        dialog.show();
    }
使用上述方法,我可以成功地创建一个对话框窗口

我正在用一个线程创建对话框窗口

Runnable runnable = new Runnable() {
public void run() {

                displayDialogWindow(html);

            }
};
但在显示一次对话框窗口后,我想更改宽度 动态地打开对话框窗口。(例如,当我点击另一个按钮时 在我的应用程序中,窗口的宽度应该减小并达到最大值 按下另一个按钮时的原始宽度)

有谁能帮我动态更改对话框窗口的宽度吗?

我认为每次您想更改对话框时,都必须“重新创建”对话框。 在yourDialog.show()方法之后,可以插入以下行:

yourDialog.getWindow().setLayout((6 * width)/7, LayoutParams.WRAP_CONTENT);
这允许您调整对话框窗口及其内容的大小。
当然,宽度高度是屏幕的大小。

请参见this@twntee我看到了,但它没有解决我的问题,朋友。我想动态地改变它。我的答案呢?如果您找到了其他解决方案,请发布;-)。