안드로이드 개발자의 창고
[41일차 Android] ActionBar 본문
출처 : 안드로이드 앱스쿨 2기 윤재성 강사님 수업 PPT
📖 ActionBar
- ActionBar는 Option Menu 구성 시 showAsAction 속성을 이용한다.
showAsAction
속성 | 설명 |
None | 기본. ActionBar에 표시하지 않음 |
Always | 무조건 ActionBar에 표시 |
ifRoom | 공간이 허락할 경우 ActionBar에 표시 |
Icon | ActionBar에 표시될 때 사용할 아이콘을 지정 |
withText | 공간이 허락될 경우 아이콘과 함께 문자열을 표시 |
예제 코드
menu/main_menu.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:title="메뉴1"
app:showAsAction="always" />
<item
android:id="@+id/item2"
android:icon="@android:drawable/ic_menu_call"
android:title="메뉴2"
app:showAsAction="ifRoom|withText" />
<item
android:id="@+id/item3"
android:icon="@android:drawable/ic_menu_always_landscape_portrait"
android:title="메뉴3"
app:showAsAction="ifRoom" />
<item
android:id="@+id/item4"
android:title="메뉴4"
app:showAsAction="ifRoom" />
</menu>
activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".MainActivity" >
<TextView
android:id="@+id/textView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="TextView"
android:textAppearance="@style/TextAppearance.AppCompat.Large" />
</LinearLayout>
MainActivity.kt
class MainActivity : AppCompatActivity() {
lateinit var activityMainBinding: ActivityMainBinding
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
activityMainBinding = ActivityMainBinding.inflate(layoutInflater);
setContentView(activityMainBinding.root)
}
// 옵션 메뉴 생성
override fun onCreateOptionsMenu(menu: Menu?): Boolean {
menuInflater.inflate(R.menu.main_menu, menu)
return super.onCreateOptionsMenu(menu)
}
// 옵션 메뉴 선택 시 호출되는 메서드
override fun onOptionsItemSelected(item: MenuItem): Boolean {
when(item.itemId){
R.id.item1 -> {
activityMainBinding.textView.text = "메뉴1을 눌렀습니다"
}
R.id.item2 -> {
activityMainBinding.textView.text = "메뉴2를 눌렀습니다"
}
R.id.item3 -> {
activityMainBinding.textView.text = "메뉴3을 눌렀습니다"
}
R.id.item4 -> {
activityMainBinding.textView.text = "메뉴4를 눌렀습니다"
}
}
return super.onOptionsItemSelected(item)
}
}
결과
메뉴 선택 | 화면 회전(ifRoom) |
![]() |
![]() |
'Computer > Android' 카테고리의 다른 글
[41일차 Android] ActionBar Navigation (0) | 2023.07.01 |
---|---|
[41일차 Android] ActionView (0) | 2023.07.01 |
[39일차 Android] Fargment (0) | 2023.07.01 |
[39일차 Android] Service (0) | 2023.06.29 |
[39일차 Android] Broadcast Receiver (0) | 2023.06.27 |