警告对话框自定义布局宽度不适合屏幕
Alert dialog custom layout width was not fit to the screen
自定义警报对话框宽度不适合屏幕尺寸,我尝试了很多方法都没有效果(警报对话框宽度应完全适合屏幕尺寸)如果你对此有任何建议请分享您的想法。
import android.app.Activity;
import android.app.Dialog;
import android.content.Context;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.Window;
import android.widget.Button;
import android.widget.RelativeLayout;
public class Sample extends Activity {
final Context context = this;
Button btn;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.simple);
btn = (Button) findViewById(R.id.buttonShowCustomDialog);
btn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
// custom dialog
final Dialog dialog = new Dialog(context);
dialog.setContentView(R.layout.research);
dialog.setTitle("Title...");
dialog.show();
}
});
}
}
//simple.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<Button
android:id="@+id/buttonShowCustomDialog"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Show Custom Dialog" />
</LinearLayout>
//research.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#00555555"
>
<RelativeLayout
android:id="@+id/pakka"
android:layout_width="fill_parent"
android:layout_height="200dp"
android:layout_centerInParent="true"
android:background="#c8c8c8">
<TextView
android:id="@+id/hello"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:padding="22dp"
android:text="Hi"/>
<TextView
android:id="@+id/nik"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/hello"
android:layout_centerHorizontal="true"
android:padding="5dp"
android:text="Hi"/>
<Button
android:layout_width="360dp"
android:layout_height="60dp"
android:layout_below="@+id/peetnik"
android:layout_centerHorizontal="true"
android:layout_marginTop="20dp"
android:text="Login to see"/>
</RelativeLayout>
</RelativeLayout>
我发现了类似的问题,解决方案如下。
1)
2)
试试这个:
在你的 res/values/styles:
<style name="dialog_style" parent="android:style/Theme.Dialog">
<item name="android:windowNoTitle">true</item>
<item name="android:background">@android:color/transparent</item>
<item name="android:windowBackground">@android:color/transparent</item>
</style>
现在在您的 activity 中使用以下代码显示对话框:
final Dialog dialog = new Dialog(Sample.this,R.style.dialog_style);
dialog.setContentView(R.layout.research);
dialog.getWindow().setLayout(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT);
dialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
dialog.setCancelable(true);
dialog.setCanceledOnTouchOutside(true);
dialog.show();
这里ViewGroup.LayoutParams.MATCH_PARENT
会填满屏幕宽度
使用dialog.getWindow().setLayout(SCREEN_WIDTH, SCREEN_HEIGHT);
只需使用 WindowManager.LayoutParams()
final Dialog dialog = new Dialog(getActivity());
dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
dialog.setContentView(R.layout.research);
WindowManager.LayoutParams lp = new WindowManager.LayoutParams();
lp.copyFrom(dialog.getWindow().getAttributes());
lp.width = WindowManager.LayoutParams.MATCH_PARENT;
lp.height = WindowManager.LayoutParams.MATCH_PARENT;
dialog.show();
dialog.getWindow().setAttributes(lp);
将此添加到您的 style.xml 文件中
<style name="dialog_theme" parent="android:style/Theme.Dialog">
<item name="android:windowMinWidthMajor">90%</item>
<item name="android:windowMinWidthMinor">90%</item>
<item name="android:background">@android:color/transparent</item>
<item name="android:windowBackground">@android:color/transparent</item>
</style>
然后在你的对话框初始化的地方添加这个
final Dialog dialog = new Dialog(context, R.style.dialog_theme);
dialog.setContentView(R.layout.research);
dialog.setTitle("Title...");
dialog.show();
自定义警报对话框宽度不适合屏幕尺寸,我尝试了很多方法都没有效果(警报对话框宽度应完全适合屏幕尺寸)如果你对此有任何建议请分享您的想法。
import android.app.Activity;
import android.app.Dialog;
import android.content.Context;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.Window;
import android.widget.Button;
import android.widget.RelativeLayout;
public class Sample extends Activity {
final Context context = this;
Button btn;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.simple);
btn = (Button) findViewById(R.id.buttonShowCustomDialog);
btn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
// custom dialog
final Dialog dialog = new Dialog(context);
dialog.setContentView(R.layout.research);
dialog.setTitle("Title...");
dialog.show();
}
});
}
}
//simple.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<Button
android:id="@+id/buttonShowCustomDialog"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Show Custom Dialog" />
</LinearLayout>
//research.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#00555555"
>
<RelativeLayout
android:id="@+id/pakka"
android:layout_width="fill_parent"
android:layout_height="200dp"
android:layout_centerInParent="true"
android:background="#c8c8c8">
<TextView
android:id="@+id/hello"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:padding="22dp"
android:text="Hi"/>
<TextView
android:id="@+id/nik"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/hello"
android:layout_centerHorizontal="true"
android:padding="5dp"
android:text="Hi"/>
<Button
android:layout_width="360dp"
android:layout_height="60dp"
android:layout_below="@+id/peetnik"
android:layout_centerHorizontal="true"
android:layout_marginTop="20dp"
android:text="Login to see"/>
</RelativeLayout>
</RelativeLayout>
我发现了类似的问题,解决方案如下。
1)
2)
试试这个:
在你的 res/values/styles:
<style name="dialog_style" parent="android:style/Theme.Dialog">
<item name="android:windowNoTitle">true</item>
<item name="android:background">@android:color/transparent</item>
<item name="android:windowBackground">@android:color/transparent</item>
</style>
现在在您的 activity 中使用以下代码显示对话框:
final Dialog dialog = new Dialog(Sample.this,R.style.dialog_style);
dialog.setContentView(R.layout.research);
dialog.getWindow().setLayout(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT);
dialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
dialog.setCancelable(true);
dialog.setCanceledOnTouchOutside(true);
dialog.show();
这里ViewGroup.LayoutParams.MATCH_PARENT
会填满屏幕宽度
使用dialog.getWindow().setLayout(SCREEN_WIDTH, SCREEN_HEIGHT);
只需使用 WindowManager.LayoutParams()
final Dialog dialog = new Dialog(getActivity());
dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
dialog.setContentView(R.layout.research);
WindowManager.LayoutParams lp = new WindowManager.LayoutParams();
lp.copyFrom(dialog.getWindow().getAttributes());
lp.width = WindowManager.LayoutParams.MATCH_PARENT;
lp.height = WindowManager.LayoutParams.MATCH_PARENT;
dialog.show();
dialog.getWindow().setAttributes(lp);
将此添加到您的 style.xml 文件中
<style name="dialog_theme" parent="android:style/Theme.Dialog">
<item name="android:windowMinWidthMajor">90%</item>
<item name="android:windowMinWidthMinor">90%</item>
<item name="android:background">@android:color/transparent</item>
<item name="android:windowBackground">@android:color/transparent</item>
</style>
然后在你的对话框初始化的地方添加这个
final Dialog dialog = new Dialog(context, R.style.dialog_theme);
dialog.setContentView(R.layout.research);
dialog.setTitle("Title...");
dialog.show();