【发布时间】:2018-05-12 18:00:18
【问题描述】:
我想从 Android 的对话框中删除标题部分,我想使用我自己创建的 xml 文件作为对话框。
【问题讨论】:
-
那是什么阻止了你?
-
分享你的对话框代码
标签: android
我想从 Android 的对话框中删除标题部分,我想使用我自己创建的 xml 文件作为对话框。
【问题讨论】:
标签: android
这是相同的代码:
final AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(getContext());
LayoutInflater layoutInflater = getActivity().getLayoutInflater();
final ViewGroup viewGroup = null;
View dialogView = layoutInflater.inflate(R.layout.custom_email_dialog, viewGroup, false);
dialogBuilder.setView(dialogView);
final AlertDialog alertDialog = dialogBuilder.create();
alertDialog.show();
这里的“custom_email_dialog”是我们需要在对话框中显示的自定义 XML。
您可以通过以下方式访问对话框元素:
TextView headerTextView = (TextView) dialogView.findViewById(R.id.emailHeader);
【讨论】:
扩充您的 XML。像这样
AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(context);
LayoutInflater inflater = context.getLayoutInflater();
final View dialogView = inflater.inflate(R.layout.yourlayout, null);
dialogBuilder.setView(dialogView);
AlertDialog b = dialogBuilder.create();
b.show();
【讨论】:
您可以扩充自己的布局并将其设置为您的对话框。
Dialog dialog = new Dialog(ProfileSettingsActivity.this);
dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
dialog.setContentView(R.layout.uploadphoto); // Your layout here
WindowManager.LayoutParams lp = new WindowManager.LayoutParams();
lp.copyFrom(dialog.getWindow().getAttributes());
lp.width = WindowManager.LayoutParams.WRAP_CONTENT; //Custom width and height
lp.height = WindowManager.LayoutParams.WRAP_CONTENT;
dialog.getWindow().setAttributes(lp);
dialog.setCancelable(true);
dialog.show();
【讨论】:
只需将样式添加到对话框并删除自定义对话框的标题。
Custom_dialog.xml
<?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="wrap_content"
android:background="@color/colorPrimary"
android:orientation="vertical">
<TextView
android:id="@+id/txt_warning"`enter code here`
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginTop="10dp"
android:text="Warning"
android:textAllCaps="true"
android:textColor="@android:color/white"
android:textSize="18dp"
android:textStyle="bold" />
<TextView
android:id="@+id/txt_dia"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_margin="10dp"
android:text="Are you sure you want to Logout?"
android:textColor="@android:color/white"
android:textSize="18dp" />
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:layout_marginTop="15dp"
android:background="@android:color/white" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/colorPrimary"
android:orientation="horizontal"
android:weightSum="1">
<Button
android:id="@+id/btn_no"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="left"
android:layout_weight=".5"
android:background="@color/colorPrimary"
android:clickable="true"
android:gravity="center"
android:padding="10dp"
android:text="No"
android:textColor="@android:color/white"
android:textSize="18dp" />
<View
android:layout_width="1dp"
android:layout_height="match_parent"
android:background="@android:color/white" />
<Button
android:id="@+id/btn_yes"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight=".5"
android:background="@color/colorPrimary"
android:clickable="true"
android:gravity="center"
android:padding="10dp"
android:text="Yes"
android:textColor="@android:color/white"
android:textSize="18dp" />
</LinearLayout>
</LinearLayout>
在 Styles.xml 中设置样式:-
<style name="FullHeightDialog" parent="android:style/Theme.Dialog">
<item name="android:windowNoTitle">true</item>
</style>
On button Click listener 你必须写这段代码:-
// 自定义对话框
final Dialog dialog = new Dialog(mContext, R.style.FullHeightDialog);
dialog.setContentView(R.layout.custom_dialog);
dialog.setCancelable(false);
WindowManager.LayoutParams lp = new WindowManager.LayoutParams();
lp.copyFrom(dialog.getWindow().getAttributes());
lp.width = WindowManager.LayoutParams.MATCH_PARENT;
lp.height = WindowManager.LayoutParams.WRAP_CONTENT;
dialog.getWindow().setAttributes(lp);
dialog.show();
Button btnYes = (Button) dialog.findViewById(R.id.btn_yes);
Button btnNo = (Button) dialog.findViewById(R.id.btn_no);
// if button is clicked, close the custom dialog
btnYes.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
documentImage = documentImagesList.get(getAdapterPosition());
//logout code here
}
});
btnNo.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
dialog.dismiss();
}
});
【讨论】: