对话框自定义宽高问题
Dialog custom width height issue
我正在尝试为我的自定义对话框分配自定义宽度和高度
,
我使用的代码适用于平板电脑 lolipop 及更高版本
但在我的 phone 运行 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>
您应该在 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);
那个白色区域是标题,你可以这样隐藏标题。
dialog.requestWindowFeature(Window.FEATURE_NO_TITLE); //before
dialog.setContentView(R.layout.logindialog);
解决方案 1:
dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
在 setContentView() 之前。
方案二:
添加自定义样式
<style name="myDialog" parent="android:style/Theme.Dialog">
<item name="android:windowNoTitle">true</item>
</style>
然后在您的清单文件中添加这一行
<activity android:name=".youractivity" android:theme="@style/myDialog"></activity>
谢谢,
我正在尝试为我的自定义对话框分配自定义宽度和高度 , 我使用的代码适用于平板电脑 lolipop 及更高版本 但在我的 phone 运行 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>
您应该在 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);
那个白色区域是标题,你可以这样隐藏标题。
dialog.requestWindowFeature(Window.FEATURE_NO_TITLE); //before
dialog.setContentView(R.layout.logindialog);
解决方案 1:
dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
在 setContentView() 之前。
方案二: 添加自定义样式
<style name="myDialog" parent="android:style/Theme.Dialog">
<item name="android:windowNoTitle">true</item>
</style>
然后在您的清单文件中添加这一行
<activity android:name=".youractivity" android:theme="@style/myDialog"></activity>
谢谢,