Я использую AppCompatDialogFragment
от android.support.v7.app.AppCompatDialogFragment
, и я хочу выровнять диалоговый фрагмент в нижнюю часть экрана и также удалить все границы, особенно я должен был установить ширину содержания для соответствия родителю.
Так, я хотел от этого (желтый фон прибывает из rootLayout диалогового фрагмента):
Получают это:
Ни одно из решений 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()
}
}
}