如何将关闭按钮放在Android警报对话框的右上角?

问题描述 投票:0回答:4

如何将关闭按钮放在 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;
 }
android android-layout
4个回答
15
投票

我知道,我迟到了回答这个 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));

2
投票

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();

}


1
投票

你必须创建自定义对话框

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 文件。根据您的要求设计。


0
投票

这就是你可以做到的

    <?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>
最新问题
© www.soinside.com 2019 - 2024. All rights reserved.