Как мне центрировать кнопки диалога?(Котлин, Android Studio) - PullRequest
0 голосов
/ 10 октября 2018

По умолчанию кнопки диалогового окна выровнены по правому краю следующим образом:

enter image description here

Не уверен, рекомендуется ли это стандартом для Android,но для меня это выглядит странно.Я хотел бы центрировать кнопки вместо этого.

Я пробовал различные конфигурации отсюда безрезультатно: выравнивание кнопок AlertDialog по центру

Возможно, это java, что смущает меня, когда я пытаюсь записать его в kotlin или этому посту 3,5 года.В любом случае, есть ли у кого-нибудь предложения о том, как решить эту проблему программно, не прибегая к xml и inflating диалоговому окну?

1 Ответ

0 голосов
/ 15 октября 2018

Если вам не нравится метод построителя Alert Dialog, вот простой настраиваемый диалог Alert.

Этот btnDeleteDept вызывает забаву doCustom ()

        btnDeleteDept.setOnClickListener {
        if (etDeptData.text.toString().equals("")) {
            message("No Match Found")
            return@setOnClickListener
        }
        doCustom()
    }

Вот код для забавы doCustom (), которая использует другую забаву, как вы можете видеть

    fun doCustom() {
    /* This method uses the custom_dialog.xml file created for greater control over
   the styling of the Custom Alert Dialog for various screen sizes and to be
   able to set the text size of the dialog message text
   */
    val makeDialog = LayoutInflater.from(this).inflate(R.layout.custom_dialog,null)
    val mBuilder = AlertDialog.Builder(this).setView(makeDialog)
    val mAlertDialog = mBuilder.show()

    val btnYES = makeDialog.findViewById<Button>(R.id.btnYES)
    val btnNO = makeDialog.findViewById<Button>(R.id.btnNO)
    mAlertDialog.setCancelable(false)

    btnYES.setOnClickListener {
        removeDEPT()
        mAlertDialog.dismiss()
    }

    btnNO.setOnClickListener {
        message("Record NOT Deleted")
        etDeptData.setText("")
        //Timer().schedule(800){
            thisACTIVITY()
        //}
        mAlertDialog.dismiss()
    }
    mAlertDialog.show()
}

private fun removeDEPT() {

    val dbHandler = DBHelper(this)

    val result = dbHandler.deleteDEPT(etDeptData.text.toString())

    if (result) {
        etDeptData.setText("")
        message("Record Removed")
        //Timer().schedule(1000){
            thisACTIVITY()
        //}
    }else{
        etDeptData.setText("NO MATCH -> click View Dept List")
        btnViewDeptList.visibility = View.VISIBLE
        btnEditDept.visibility = View.INVISIBLE
        btnDeleteDept.visibility =View.INVISIBLE
        btnSaveDeptData.visibility = View.INVISIBLE
        message("NO Match Found")
    }
}

ОК, все это ничто без XML-файла

<?xml version="1.0" encoding="utf-8"?>

<ImageView
    android:id="@+id/imgDI"
    android:layout_width="50dp"
    android:layout_height="50dp"
    android:layout_marginLeft="10dp"
    android:layout_marginTop="10dp"
    android:src="@drawable/delete48" />

<TextView
    android:id="@+id/tvDAT"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_marginLeft="80dp"
    android:layout_marginTop="30dp"
    android:text="Delete Data"
    android:textColor="@color/color_Black"
    android:textSize="20sp"
    android:textStyle="bold" />

<TextView
    android:id="@+id/tvDAC"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginLeft="28dp"
    android:layout_marginTop="80dp"
    android:gravity="center"
    android:text="Click DELETE to Remove Data"
    android:textColor="@color/color_Black"
    android:textSize="18sp"
    android:textStyle="bold" />

<Button
    android:id="@+id/btnYES"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginLeft="240dp"
    android:layout_marginTop="110dp"
    android:background="@color/color_Transparent"
    android:text="DELETE"
    android:textColor="@color/color_deepBlue"
    android:textSize="18sp"
    android:textStyle="bold" />

<Button
    android:id="@+id/btnNO"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginLeft="20dp"
    android:layout_marginTop="110dp"
    android:background="@color/color_Transparent"
    android:text="CANCEL"
    android:textColor="@color/color_deepBlue"
    android:textSize="18sp"
    android:textStyle="bold" />

...