我试图将自定义宽度和高度分配给我的自定义对话框 , 代码即时通讯使用平板电脑lolipop及以上 但是在运行android kitkat的手机上的对话框顶部留下了一个白色的补丁。
代码段
Dialog dialog = new Dialog(this);
dialog.setContentView(R.layout.dialog_documentationissue_notification);
dialog.setCancelable(true);
DisplayMetrics displaymetrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(displaymetrics);
int width = (int) (displaymetrics.widthPixels * 0.90);
int height = (int) (displaymetrics.heightPixels * 0.70);
dialog.getWindow().setLayout(width,height);
//dialog.getWindow().getAttributes().windowAnimations = R.style.NotificationDialogAnimation;
dialog.show();
布局
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:background="@android:color/transparent"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="0.15"
android:background="#3F51B5"
android:orientation="vertical">
<View
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="0.85"
android:background="@color/white"
android:orientation="vertical">
<View
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</LinearLayout>
</LinearLayout>
答案 0 :(得分:3)
您应该在 setContentView 之前添加 requestFeature(Window.FEATURE_NO_TITLE)。
dialog.getWindow().setBackgroundDrawable(new ColorDrawable(android.graphics.Color.TRANSPARENT)); //Optional
dialog.getWindow().requestFeature(Window.FEATURE_NO_TITLE);
dialog.setContentView(R.layout.dialog_documentationissue_notification);
答案 1 :(得分:0)
白色区域用于标题,您可以通过这种方式隐藏标题。
dialog.requestWindowFeature(Window.FEATURE_NO_TITLE); //before
dialog.setContentView(R.layout.logindialog);
答案 2 :(得分:0)
解决方案1:
dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
在setContentView()之前。
解决方案2: 添加自定义样式
<style name="myDialog" parent="android:style/Theme.Dialog">
<item name="android:windowNoTitle">true</item>
</style>
然后在清单文件中添加此行
<activity android:name=".youractivity" android:theme="@style/myDialog"></activity>
谢谢,