<aside> 💡 특정 뷰에 고정된 모달 메뉴 뷰를 클릭시 메뉴가 나타남. 해당 뷰 아래에 공간이 있으면 아래에, 없다면 위에 메뉴가 나타남
</aside>
Menu 파일 생성
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="<http://schemas.android.com/apk/res/android>">
<item
android:id="@+id/close_issue"
android:title="이슈 닫기"/>
<item
android:id="@+id/delete_issue"
android:title="이슈 삭제"/>
</menu>
Popup 호출
fun showPopup(
v : View,
closeBtnClick : () -> Unit,
deleteBtnClick : () -> Unit
){
val popup = PopupMenu(requireContext(), v)
popup.menuInflater.inflate(R.menu.popup_menu, popup.menu)
popup.setOnMenuItemClickListener {
when(it?.itemId){
R.id.close_issue -> { closeBtnClick() }
R.id.delete_issue -> { deleteBtnClick() }
}
it != null
}
popup.show()
}
→ 레이아웃 작성
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="<http://schemas.android.com/apk/res/android>"
xmlns:app="<http://schemas.android.com/apk/res-auto>">
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="220dp"
android:layout_height="40dp"
android:background="@drawable/shape_darkfill_nostroke_radius10"
android:paddingHorizontal="16dp"
android:paddingVertical="8dp">
<TextView
android:id="@+id/tv_accusation"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:text="신고하기"
android:textColor="@color/gg_red"
android:textSize="16sp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toBottomOf="parent"/>
</androidx.constraintlayout.widget.ConstraintLayout>
</layout>