【Android】 대화 상자의 match_parent 정보
7989 단어 안드로이드AndroidStudioKotlin
별로 사용하는 장면은 없다고 생각하지만.
AlertDialog
AlertDialog는 비교적 쉽게 구현할 수 있기 때문에 이것을 사용했습니다.
다만, 이것이라면 폭·높이 가득 펼칠 수 없다.
MainActivity.ktval dialog = AlertDialog.Builder(this).apply {
setTitle("タイトル")
setMessage("メッセージ")
setNegativeButton("閉じる") { dialog, _ -> dialog.cancel() }
}.create()
//このようにmatch_parentを使おうとしても意味がない
dialog.window?.setLayout(
ViewGroup.LayoutParams.MATCH_PARENT,
ViewGroup.LayoutParams.MATCH_PARENT
)
dialog.show()
Dialog
통상의 다이얼로그를 사용하면, 폭·높이 가득 넓힐 수 있다.
우선 다이얼로그의 레이아웃 작성.
test_dialog.xml<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/white"
android:gravity="center"
android:orientation="vertical"
android:paddingHorizontal="60dp"
android:paddingVertical="20dp">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="start"
android:text="タイトル"
android:textSize="20sp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="start"
android:text="メッセージ"
android:textSize="18sp" />
<Button
android:id="@+id/button"
style="?android:attr/borderlessButtonStyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="end"
android:text="閉じる"
android:textColor="@color/black" />
</LinearLayout>
다음으로 처리 부분의 작성. 여기서 match_parent 지정.
TestDialogFragment.ktclass TestDialogFragment : DialogFragment() {
override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
return Dialog(requireContext()).apply {
val binding = TestDialogBinding.inflate(LayoutInflater.from(context))
binding.button.setOnClickListener {
dismiss()
}
setContentView(binding.root)
//ここで幅・高さをmatch_parentにする
window?.setLayout(
ViewGroup.LayoutParams.MATCH_PARENT,
ViewGroup.LayoutParams.MATCH_PARENT
)
}
}
}
마지막으로 MainActivity에서 대화상자 표시
MainActivity.ktTestDialogFragment().show(supportFragmentManager, TestDialogFragment::class.java.simpleName)
Reference
이 문제에 관하여(【Android】 대화 상자의 match_parent 정보), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/nakashimaakio/items/d4cb0b2f8fa2bc748a92
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
val dialog = AlertDialog.Builder(this).apply {
setTitle("タイトル")
setMessage("メッセージ")
setNegativeButton("閉じる") { dialog, _ -> dialog.cancel() }
}.create()
//このようにmatch_parentを使おうとしても意味がない
dialog.window?.setLayout(
ViewGroup.LayoutParams.MATCH_PARENT,
ViewGroup.LayoutParams.MATCH_PARENT
)
dialog.show()
통상의 다이얼로그를 사용하면, 폭·높이 가득 넓힐 수 있다.
우선 다이얼로그의 레이아웃 작성.
test_dialog.xml
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/white"
android:gravity="center"
android:orientation="vertical"
android:paddingHorizontal="60dp"
android:paddingVertical="20dp">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="start"
android:text="タイトル"
android:textSize="20sp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="start"
android:text="メッセージ"
android:textSize="18sp" />
<Button
android:id="@+id/button"
style="?android:attr/borderlessButtonStyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="end"
android:text="閉じる"
android:textColor="@color/black" />
</LinearLayout>
다음으로 처리 부분의 작성. 여기서 match_parent 지정.
TestDialogFragment.kt
class TestDialogFragment : DialogFragment() {
override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
return Dialog(requireContext()).apply {
val binding = TestDialogBinding.inflate(LayoutInflater.from(context))
binding.button.setOnClickListener {
dismiss()
}
setContentView(binding.root)
//ここで幅・高さをmatch_parentにする
window?.setLayout(
ViewGroup.LayoutParams.MATCH_PARENT,
ViewGroup.LayoutParams.MATCH_PARENT
)
}
}
}
마지막으로 MainActivity에서 대화상자 표시
MainActivity.kt
TestDialogFragment().show(supportFragmentManager, TestDialogFragment::class.java.simpleName)
Reference
이 문제에 관하여(【Android】 대화 상자의 match_parent 정보), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/nakashimaakio/items/d4cb0b2f8fa2bc748a92텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)