我正在创建一个Android应用程序。在那个应用程序中,我正在使用 一个Dialog窗口,显示来自服务器的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();
}
使用上面的方法我可以成功创建一个Dialog窗口。
我正在使用Thread创建Dialog窗口,
Runnable runnable = new Runnable() {
public void run() {
displayDialogWindow(html);
}
};
但是在显示一次对话窗口后,我想改变宽度 对话框窗口动态。 (例如,当我点击另一个按钮时 我的应用程序,窗口的宽度应该减少,并来到 按下另一个按钮时的原始宽度。)
任何人都可以帮我动态更改对话框窗口的宽度吗?
答案 0 :(得分:3)
我认为每次想要改变它时都必须“重新调整”对话框。 在 yourDialog.show()方法之后,您可以插入以下行:
yourDialog.getWindow().setLayout((6 * width)/7, LayoutParams.WRAP_CONTENT);
这允许您调整Dialog窗口及其内容的大小。 当然,宽度和高度是您屏幕的大小。