반응형
ToolBar
- ActionBar를 보다 자유롭게 사용할 수 있도록 ToolBar 라는 View를 제공
- 탭 등 다양한 기능 제공
- 기본적인 부분은 ActionBar와 동일
- 액션바와는 달리 툴바는 하위 호완성을 제공하기 때문에 많은 버전에서 일관성 있게 동작
- 액션바는 액티비티에 포함된 개념이지만 툴바는 XML에 위젯을 추가해줘야 함
- icon, showAction 사용 방법은 ActionBar 와 동일
프로퍼티
- elevation : 툴바 밑에 그림자 효과를 줘서 공중에 뜬 것 같은 느낌을 줌
- popupTheme : 메뉴 아이템 등의 스타일을 설정 *나의 경우 이걸 안 해주거나 특정 스타일에서는 item 객체가 화면에 안 나옴
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)
// 액션바 없애고 툴바를 대신해 사용할 수 있도록 설정
setSupportActionBar(binding.toolbar)
}
override fun onCreateOptionsMenu(menu: Menu): Boolean {
menuInflater.inflate(R.menu.main_menu, menu)
return true
}
override fun onOptionsItemSelected(item: MenuItem): Boolean {
when (item.itemId) {
R.id.item -> {
binding.textView.text = "메뉴1 누름"
}
R.id.item2 -> {
binding.textView.text = "메뉴2 누름"
}
R.id.item3 -> {
binding.textView.text = "메뉴3 누름"
}
}
return super.onOptionsItemSelected(item)
}
}
<?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">
<androidx.appcompat.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="?attr/colorPrimary"
android:elevation="20dp"
android:minHeight="?attr/actionBarSize"
android:theme="?attr/actionBarTheme"
app:popupTheme="@style/ThemeOverlay.AppCompat.Light" />
<TextView
android:id="@+id/textView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Activity Text"
android:textAppearance="@style/TextAppearance.AppCompat.Large" />
</LinearLayout>
[themes.xml]
<!-- 액션바를 제거 -->
<item name="windowActionBar">false</item>
<item name="windowNoTitle">true</item>
반응형
'Android' 카테고리의 다른 글
[안드로이드/ActionBar/ToolBar] ToolBar를 이용한 Navigation (0) | 2023.04.25 |
---|---|
[안드로이드/ActionBar/ToolBar] ToolBar 에서 ActionView 사용 (0) | 2023.04.25 |
[안드로이드/ActionBar] ActionBar 커스텀 (0) | 2023.04.25 |
[안드로이드/ActionBar] ActionBar Navigation (0) | 2023.04.25 |
[안드로이드/ActionBar] ActionView (0) | 2023.04.25 |