반응형
ActionBar
- 상단 부분에 있는 영역
- Option Menu 구성시 showAsAction 속성을 이용하면 option menu의 중요한 메뉴를 ActionBar에 띄울 수 있음
- 액션바를 잘 활용하면 작은 화면 안에서 효율적으로 기능 구현이 가능
showAsAction
- None : (기본) ActionBar에 표시 X
- Always : 무조건 ActionBar에 표시 (꼭 표시해야 하는 정말 중요한 메뉴일 경우만 사용하길 권장..)
- ifRoom : 공간이 허용될 경우에만 ActionBar에 표시
- Icon : ActionBar에 표시될 때 사용할 아이콘 지정 (지정 안하면 타이틀 속성에 설정된 문자열이 표시됨)
- withText : 공간이 허용될 경우 아이콘+문자열 표시
class MainActivity : AppCompatActivity() {
private lateinit var binding: ActivityMainBinding
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
binding = ActivityMainBinding.inflate(layoutInflater) // 뷰바인딩 객체
val view = binding.root //뷰바인딩을 통해 레이아웃과 뷰가 결합 -> .root 를 통해 View 객체만를 뽑아내는(?)
setContentView(view)
}
override fun onCreateOptionsMenu(menu: Menu): Boolean {
menuInflater.inflate(R.menu.menu1,menu)
return true
}
override fun onOptionsItemSelected(item: MenuItem): Boolean {
when (item.itemId) {
R.id.item1 -> {
binding.textView.text = "1번 메뉴"
}
R.id.item2 -> {
binding.textView.text = "2번 메뉴"
}
R.id.item3 -> {
binding.textView.text = "3번 메뉴"
}
R.id.item4 -> {
binding.textView.text = "4번 메뉴"
}
}
return super.onOptionsItemSelected(item)
}
}
[menu1.xml]
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:id="@+id/item1"
android:icon="@drawable/img4"
android:title="메뉴1"
app:showAsAction="ifRoom" />
<item
android:id="@+id/item2"
android:icon="@drawable/img5"
android:title="메뉴2"
app:showAsAction="ifRoom|withText" />
<item
android:id="@+id/item3"
android:title="메뉴3" />
<item
android:id="@+id/item4"
android:title="메뉴4"
app:showAsAction="never" />
</menu>
반응형
'Android' 카테고리의 다른 글
[안드로이드/ActionBar] ActionBar Navigation (0) | 2023.04.25 |
---|---|
[안드로이드/ActionBar] ActionView (0) | 2023.04.25 |
[안드로이드/Activity] Activity Animation (0) | 2023.04.22 |
[안드로이드/Fragment] Fragment Animation (0) | 2023.04.22 |
[안드로이드/Fragment] DialogFragment (0) | 2023.04.22 |