Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- layout_constrainedWidth
- Retrofit2
- 화면 회전
- Android
- Room
- Collections Function
- multipart
- NumberPIcker
- 생명주기
- Lifecycle
- Load failed
- findNavController
- RecyclerView
- Navigation
- gradle plugin
- http
- DataBinding
- todo
- log
- json
- kotlin
- WorkManager
- BottomSheetDialogFragment
- Popup menu background color
- DialogFragment
- ThreeTen Backport
- layout_constrainedHeight
- 기기고유값
- SSAID
- studywithme
Archives
- Today
- Total
chacha's
ActionBar❓ ToolBar ❗ 사용하기 본문
목차
Working with the AppBar - Docs
App bars: top - material.io
를 참고하여 작성한 게시글입니다.
App bars: top
ToolBar Menu in Fragment
개발자를 위한 레시피 - 안드로이드 액션바(ActionBar) 기본 사용법
을 참고하였습니다.
1. res/menu
폴더에 menu 리소스 파일을 생성해줍니다.
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item
android:id="@+id/check_action_edit"
android:title="@string/edit"
app:showAsAction="never"/>
<item
android:id="@+id/check_action_delete"
android:title="@string/delete"
app:showAsAction="never"/>
<item
android:id="@+id/check_action_replicate"
android:title="@string/replicate"
app:showAsAction="never"/>
</menu>
여기서 showAsAction
속성에 따라서 AppBar에 어떻게 보여질지가 결정됩니다.
속성 | 설명 |
app:showAsAction="always" |
<item/>을 항상 AppBar의 액션으로 표시해줍니다. |
app:showAsAction="never" |
AppBar의 액션으로 표시하지 않고 오버플로우 메뉴에 표시 |
app:showAsAction="ifRoom" |
AppBar에 공간이 있는 경우 액션으로 표시하고, 공간이 없는 경우 오버플로우 메뉴로 표시 |
app:showAsAction="withText" |
액션으로 표시할 때, 텍스트와 같이 표시합니다. 공간이 없는 경우, 텍스트만 표시합니다. |
2. onCreateOptionMenu
메서드와 onOptionsItemSelected
메서드를 선언해줍니다.
📌 Fragment에서는 setHasOptionsMenu(true)
를 설정해줘야 Toolbar에 Menu가 보입니다.
class CheckScheduleFragment : Fragment() {
...
override fun onCreateView(
inflater: LayoutInflater,
container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
...
// toolbar setting
setHasOptionsMenu(true)
...
}
override fun onCreateOptionsMenu(menu: Menu, inflater: MenuInflater) {
inflater.inflate(R.menu.schedule_check_menu, menu)
super.onCreateOptionsMenu(menu, inflater)
}
// menu에서 item 클릭 시 호출
override fun onOptionsItemSelected(item: MenuItem): Boolean {
return when(item.itemId) {
R.id.check_action_edit -> {
findNavController().navigate(CheckScheduleFragmentDirections.actionCheckScheduleToRegisterSchedule())
true
}
R.id.check_action_replicate -> {
true
}
R.id.check_action_delete -> {
true
}
else -> super.onOptionsItemSelected(item)
}
}
}
'Android > My Library' 카테고리의 다른 글
💰 Chip 사용하기 (0) | 2021.08.06 |
---|---|
🧭 Navigation을 이용해서 Dialog로 전환하기 (0) | 2021.06.09 |
♻ RecyclerView 에 🎩Header 추가하기 (0) | 2021.06.07 |
♻ RecyclerView에 👆 Click 이벤트 추가하기 (0) | 2021.06.07 |
🎹 Bottom Navigation 사용하기 (0) | 2021.05.30 |
Comments