我有一个问题,我正在为此设计一个自定义对话框。我正在为此创建一个xml,因为framelayout是根布局,另一个带有灰色背景图像的framelayout用于内容,其中我添加了一个textview和两个按钮ok和cancel,并通过dialog.setContentView(desired Xml Resource);
但当我生成那个特定的对话框时,它会从每一边显示额外的空格,或者我们可以说有额外的边距,但我不知道它将如何删除?请查看此问题所附的图片,并向我建议正确的解决方案。
XML布局:
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_height="wrap_content" android:layout_width="wrap_content">
<FrameLayout android:id="@+id/rel"
android:layout_gravity="center_vertical" android:background="@drawable/dialog_box_bg" android:layout_width="wrap_content" android:layout_height="189dp">
<TextView android:id="@+id/tv_LogoutDialog_Text"
android:layout_width="wrap_content" android:layout_height="wrap_content"
android:textColor="#424242"
android:text="Are you sure want to logout?" android:textSize="20dip" android:layout_gravity="center_vertical|center_horizontal"></TextView>
<Button android:id="@+id/btn_LogoutDialog_Cancel" android:background="@drawable/dialog_cancel_btn"
android:layout_marginLeft="20dip" android:layout_width="120dip" android:layout_height="42dip" android:layout_gravity="bottom|left" android:layout_marginBottom="15dip"></Button>
<Button android:id="@+id/btn_LogoutDialog_Ok"
android:background="@drawable/dialog_ok_btn_hover"
android:layout_width="120dip"
android:layout_height="42dip" android:layout_marginLeft="180dip" android:layout_gravity="bottom|right" android:layout_marginBottom="15dip" android:layout_marginRight="20dip"></Button>
</FrameLayout>
</FrameLayout>
代码:
@Override
protected Dialog onCreateDialog(int id) {
switch (id) {
case 0:
dialog = new Dialog(HomeScreenActivity.this);
dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
dialog.setContentView(R.layout.logoutdialog);
btn_cancel = (Button)dialog.findViewById(R.id.btn_LogoutDialog_Cancel);
btn_ok = (Button)dialog.findViewById(R.id.btn_LogoutDialog_Ok);
btn_cancel.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
dismissDialog(0);
}
});
btn_logout.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
Intent intent = new Intent(HomeScreenActivity.this,LoginScreen.class);
startActivity(intent);
}
});
return dialog;
}
return null;
}
提前谢谢。
最佳答案
不要使用
dialog.setContentView(R.layout.logoutdialog);
使用
LayoutInflater class to set Dialog content view
这里是链接(Check),你可以得到的想法,也许这有助于你。