1. 액션바 사용 해지
res>themes에서
<style name="Theme.Calendar" parent="Theme.AppCompat.Light.NoActionBar">
NoActionBar로 바꾼다.
(라이트버전, 나이트버전 둘다)
2. 커스텀 툴바 레이아웃 만들기(코틀린 클래스 없어도됨)
<?xml version="1.0" encoding="utf-8"?>
<androidx.appcompat.widget.Toolbar xmlns:android="<http://schemas.android.com/apk/res/android>"
xmlns:app="<http://schemas.android.com/apk/res-auto>"
android:id="@+id/toolbar_custom"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="#FFAC07"
android:theme="@style/ThemeOverlay.AppCompat.ActionBar"
app:popupTheme="@style/ThemeOverlay.AppCompat.Light">
</androidx.appcompat.widget.Toolbar>
3. 툴바에서 사용할 메뉴 만들기 (res>(new>resource directory(resource type : menu) menu폴더 만들어서 menu 폴더 안에 xml을 만든다 - 코틀린 클래스 필요없음)
<?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/toolbar_today"
android:icon="@drawable/ic_circular_counterclockwise_arrow_rotation"
android:title="toolbar_plus"
app:showAsAction="always" />
<item
android:id="@+id/toolbar_schedules"
android:icon="@drawable/ic_baseline_search_24"
android:title="toolbar_schedules"
app:showAsAction="always" />
<item
android:id="@+id/toolbar_plus"
android:icon="@drawable/ic_plus"
android:title="toolbar_plus"
app:showAsAction="always" />
</menu>
4. 사용할 액티비티 xml 에서 include해주기
<include
android:id="@+id/toolbar"
layout="@layout/custom_toolbar">
</include>
5. 사용할 액티비티 클래스에서 툴바 사용한다고 말해주기
val profile_image = intent.getStringExtra("profile")
//툴바 세팅
val toolbar = findViewById<Toolbar>(R.id.toolbar)
setSupportActionBar(toolbar)
val actionBar = supportActionBar
actionBar!!.setDisplayHomeAsUpEnabled(true) //왼쪽버튼
var drawable : Bitmap?
//왼쪽 버튼에 프로필 사진 넣기
CoroutineScope(Dispatchers.Main).launch {
drawable =
withContext(Dispatchers.IO) {
DownloadFilesTask.ImageLoader.loadImage(profile_image!!)
}
drawable = DownloadFilesTask.convertRoundedBitmap(drawable!!)
//왼쪽버튼 이미지 바꾸기
toolbar.navigationIcon = BitmapDrawable(drawable)
}
//아까 만든 메뉴를 툴바에 적용하겠다
override fun onCreateOptionsMenu(menu: Menu?): Boolean {
val menuInflater = menuInflater
menuInflater.inflate(R.menu.toobar_menu, menu)
return true
}
//툴바 메뉴 눌렀을 때
override fun onOptionsItemSelected(item: MenuItem): Boolean {
when(item.itemId){
R.id.toolbar_today -> Log.d("","")
R.id.toolbar_schedules -> Log.d("","")
R.id.toolbar_plus -> Log.d("","")
}
return true
}