<aside> 💡 특정 뷰에 고정된 모달 메뉴 뷰를 클릭시 메뉴가 나타남. 해당 뷰 아래에 공간이 있으면 아래에, 없다면 위에 메뉴가 나타남

</aside>

일반 PopupMenu

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()
}

CustomPopup

→ 레이아웃 작성

<?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>