如何将关闭按钮放在 Android 警报对话框的右上角?
将关闭按钮放在警报对话框的右上角。
我使用了下面的代码用于滚动和对话框
<ScrollView
android:id="@+id/ScrollView01"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
xmlns:android="http://schemas.android.com/apk/res/android">
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:scrollbars="vertical"
android:scrollbarAlwaysDrawVerticalTrack="true" >
<ImageVieandroid:id="@+id/image"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"
android:layout_marginLeft="200dp"
android:src="@drawable/ic_launcher" />
</RelativeLayout>
</ScrollView>
在java编码中我使用了下面的编码 我想放置一个图像来关闭对话框 请帮忙
public void onClick(View v)
{
// TODO Auto-generated method stub
switch (v.getId())
{
case R.id.How_to_use:
final Dialog dialog = new Dialog(this);
dialog.setContentView(R.layout.description);
dialog.setTitle("How to use");
TextView text = (TextView) dialog.findViewById(R.id.description);
text.setText(R.string.Descr_How_to_use);
ImageView image = (ImageView) dialog.findViewById(R.id.image);
image.setImageResource(R.drawable.ic_launcher);
image.setOnClickListener(new OnClickListener()
{
// @Override
public void onClick(View v) {
dialog.dismiss();
}
});
dialog.show();
break;
default:
break;
}
我知道,我迟到了回答这个 2 年前的问题,但这个问题是为那些还不知道正确方法的人准备的......
使用自定义对话框(每个人都建议)。
使用RelativeLayout作为custom_dialog.xml的主要布局,因为您必须将取消按钮浮动在主窗口的顶角(右/左)。
custom_dialog.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="400dp"
android:layout_alignParentTop="true"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:layout_marginTop="15dp"
android:background="#F4F4F4">
<!--Main Body of your custom dialog-->
</RelativeLayout>
<LinearLayout
android:id="@+id/llTop"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"
android:orientation="vertical">
<ImageButton
android:id="@+id/btnCancel"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/btnBookK"
android:background="@null"
android:src="@drawable/ic_close" />
</LinearLayout>
</RelativeLayout>
在您的自定义对话框代码中使用以下行使其透明:
dialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
customDialog.xml
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
>
<LinearLayout
android:id="@+id/llTop"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_alignParentRight="true"
android:paddingBottom="10dp"
>
<Button
android:id="@+id/btnClose"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="#000000"
android:text="Close"
/>
</LinearLayout>
<ImageView
android:src="@drawable/ic_launcher"
android:layout_width="130dp"
android:layout_height="130dp"
android:text="Close"
android:layout_centerInParent="true"
android:layout_below="@+id/llTop"
/>
</RelativeLayout>
我创建了1个方法,每当你想显示对话框时只需调用这个方法。
private Dialog dialog; // class variable
private void showDialog
{
dialog = new Dialog(Activity.this); // always give context of activity.
dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
dialog.setContentView(R.layout.customDialog);
Button dialogButton = (Button) dialog.findViewById(R.id.btnClose);
dialogButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v)
{
dialog.dismiss();
}
});
dialog.show();
}
你必须创建自定义对话框
import android.app.Dialog;
import android.content.Context;
public class CustomDialog extends Dialog
{
public CustomDialog(Context context)
{
super(context);
setContentView(R.layout.dialog);
}
}
创建dialog.xml 文件。根据您的要求设计。
这就是你可以做到的
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-aut[enter image description here][1]o"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/transparent"
android:padding="@dimen/dp_30">
<!-- <androidx.appcompat.widget.AppCompatButton-->
<!-- android:id="@+id/btnCancel"-->
<!-- style="@style/btn_dialog_box"-->
<!-- android:layout_width="@dimen/_80sdp"-->
<!-- android:contentDescription="@string/okay"-->
<!-- android:text="Ignore"-->
<!-- app:layout_constraintBottom_toBottomOf="@+id/constraintLayout"-->
<!-- app:layout_constraintStart_toStartOf="parent"-->
<!-- app:layout_constraintEnd_toStartOf="@+id/btnOk"-->
<!-- app:layout_constraintTop_toBottomOf="@+id/constraintLayout" />-->
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/constraintLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/_15sdp"
android:layout_marginTop="@dimen/_25sdp"
android:layout_marginEnd="@dimen/_15sdp"
android:background="@drawable/bg_white_box"
android:paddingBottom="@dimen/_35sdp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
<TextView
android:id="@+id/txtUpdateTitle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginTop="@dimen/_15sdp"
android:fontFamily="@font/raleway_medium"
android:text="Update to new version"
android:textColor="@color/dark_grey"
android:textSize="@dimen/_14ssp"
android:textStyle="bold"
android:visibility="visible"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/txtLatestVersion"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/_10sdp"
android:fontFamily="@font/raleway_medium"
android:text="Latest Version : "
android:textColor="@color/dark_grey"
android:textSize="@dimen/_12ssp"
android:textStyle="bold"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintEnd_toStartOf="@+id/title"
app:layout_constraintHorizontal_chainStyle="packed"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/txtUpdateTitle" />
<TextView
android:id="@+id/title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginTop="@dimen/_10sdp"
android:fontFamily="@font/raleway_medium"
android:text="@string/product"
android:textColor="#3C3C3C"
android:textSize="@dimen/_12ssp"
android:textStyle="bold"
android:visibility="visible"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toEndOf="@+id/txtLatestVersion"
app:layout_constraintTop_toBottomOf="@+id/txtUpdateTitle" />
<View
android:id="@+id/horizontalLine"
android:layout_width="match_parent"
android:layout_height="2dp"
android:layout_marginStart="@dimen/_25sdp"
android:layout_marginTop="@dimen/_10sdp"
android:layout_marginEnd="@dimen/_25sdp"
android:background="@color/light_grey"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/title" />
<TextView
android:id="@+id/txtReleasNote"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/_25sdp"
android:layout_marginTop="@dimen/_25sdp"
android:fontFamily="@font/raleway_medium"
android:text="Change Log :"
android:textColor="@color/dark_grey"
android:textSize="@dimen/_13ssp"
android:textStyle="bold"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/title" />
<TextView
android:id="@+id/dialogMsg"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/_25sdp"
android:layout_marginTop="@dimen/_10sdp"
android:layout_marginEnd="@dimen/_12sdp"
android:fontFamily="@font/raleway_medium"
android:letterSpacing="0.05"
android:lineSpacingExtra="@dimen/_3sdp"
android:text="Are You Sure You want to Exit?"
android:textAlignment="textStart"
android:textColor="@color/grey_text"
android:textSize="@dimen/_11ssp"
android:textStyle="bold"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/txtReleasNote" />
</androidx.constraintlayout.widget.ConstraintLayout>
<androidx.appcompat.widget.AppCompatButton
android:id="@+id/btnOk"
style="@style/btn_dialog_box"
android:layout_width="@dimen/_100sdp"
android:contentDescription="@string/cancel"
android:text="Update"
app:layout_constraintBottom_toBottomOf="@+id/constraintLayout"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/constraintLayout" />
<androidx.appcompat.widget.AppCompatImageView
android:id="@+id/btnCancel"
android:layout_width="@dimen/_19sdp"
android:layout_height="@dimen/_19sdp"
android:background="@drawable/bg_round_red"
android:src="@drawable/ic_close"
android:padding="@dimen/_2sdp"
android:layout_marginEnd="@dimen/_6sdp"
app:layout_constraintBottom_toTopOf="@+id/constraintLayout"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="@+id/constraintLayout"
app:tint="@color/white" />
</androidx.constraintlayout.widget.ConstraintLayout>