在使用自定义视图的应用程序中,我有许多对话框。在Android4之前,这些对话框的高度和宽度都会根据内容进行调整。在Andorid4模拟器中,这种行为已经改变。它看起来宽度将扩展以容纳内容,但它有一个最小大小,它将不会走。我可以使对话框变宽,但对于较窄的内容,对话框不会像我预期的那样缩小。因此,我的内容显示在过宽对话框的左侧。在3.0版本上,所有功能都能完美工作。我试过了:
dialog.setContentView(R.layout.help_dialog);
dialog.getWindow().setLayout(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);这没有任何效果。此外,标题的内容不会强制对话框扩展。任何想法都非常感谢。
发布于 2012-03-23 01:39:18
我也有同样的问题--用它解决它:
final Dialog help = new Dialog(this);
WindowManager.LayoutParams lp = new WindowManager.LayoutParams();
lp.copyFrom(help.getWindow().getAttributes());
lp.width = (int) (width);
lp.height = (int) (height);
help.show();
help.getWindow().setAttributes(lp);发布于 2012-08-01 21:47:58
我发现可以在可绘制的xml中设置对话框的边距和填充
Dialog dialog = new Dialog(this);
dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
dialog.getWindow().setBackgroundDrawableResource(r.drawable.your_drawable);
dialog.getWindow().setContentView(R.layout.your_custom_dialog_layout);
dialog.getWindow().getAttributes().width = LayoutParams.FILL_PARENT;
dialog.show();看一看r.drawable.your_drawable
<?xml version="1.0" encoding="utf-8"?>
<layer-list>
<item
xmlns:android="http://schemas.android.com/apk/res/android"
android:left="70dp"
android:right="70dp">
<shape android:shape="rectangle" >
<solid android:color="@color/white" />
<corners android:radius="4dp" />
<padding
android:bottom="70dip"
android:left="70dip"
android:right="70dip"
android:top="70dip" />
</shape>
</item>
</layer-list>通过设置项目android:right/left,它可以在可绘制的边距中添加边距。使用形状填充,您可以确保custom_dialog_layout中的字段不会超出对话框背景的宽度。
我希望这对你有一点帮助。
https://stackoverflow.com/questions/7913869
复制相似问题