60
задан 6 December 2013 в 12:13

1 ответ

Я использую AppCompatDialogFragment от android.support.v7.app.AppCompatDialogFragment, и я хочу выровнять диалоговый фрагмент в нижнюю часть экрана и также удалить все границы, особенно я должен был установить ширину содержания для соответствия родителю.

Так, я хотел от этого (желтый фон прибывает из rootLayout диалогового фрагмента):

src_img_1

Получают это:

src_img_2

Ни одно из решений aboved не работало. Так, мне удалось сделать это:

fun AppCompatDialogFragment.alignToBottom() {
    dialog.window.apply {
        setGravity(Gravity.BOTTOM or Gravity.CENTER_HORIZONTAL)
        decorView.apply {

            // Get screen width
            val displayMetrics = DisplayMetrics().apply {
                windowManager.defaultDisplay.getMetrics(this)
            }

            setBackgroundColor(Color.WHITE) // I don't know why it is required, without it background of rootView is ignored (is transparent even if set in xml/runtime)
            minimumWidth = displayMetrics.widthPixels
            setPadding(0, 0, 0, 0)
            layoutParams = LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT)
            invalidate()
        }
    }
}
1
ответ дан 31 October 2019 в 16:48

Другие вопросы по тегам:

Похожие вопросы: