코틀린으로 안드로이드 Toolbar 만들어보기
오늘은 안드로이드 프로젝트를 처음 만든 순간에 있는 ActionBar를 지우고 Toolbar를 추가해보겠습니다.
ActionBar 지우기
<resources>
<style name="AppTheme" parent="Base.Theme.AppCompat.Light.DarkActionBar">
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
<item name="windowActionBar">false</item>
<item name="windowNoTitle">true</item>
</style>
</resources>
windowActionBar 속성과 windowNoTitle 속성을 각각 false, true로 맞추어줍니다.
스타일의 parent가 기존 프로젝트와 다른 이유는 예제코드가 androidx 패키지로 바꾼 프로젝트라 만약 조금 다르더라도 무시하시면 됩니다.
Toolbar 추가
<Toolbar
android:id="@+id/toolbar"
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:minHeight="?attr/actionBarSize"
android:elevation="2dp">
<TextView
android:id="@+id/toolbarTextView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:longClickable="false"
android:text="@string/app_name"/>
</Toolbar>
elevation로 고도를 설정하여
toolbar 앱 이름 삭제
만약 TextView로 따로 앱 이름을 넣지 않았는데도 앱 이름이 툴바에 나타나는 경우에는 아래처럼 false로 설정해줍니다.
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
setSupportActionBar(toolbar)
supportActionBar?.setDisplayShowTitleEnabled(false)
}
}
툴바 이벤트
툴바를 클릭할 때에 이벤트를 발생시키고 싶으면
android:clickable="true"
android:focusable="true"
해당 속성을 true로 추가해줍니다.
toolbarTextView.setOnClickListener {
//method
}
엑티비티에서 해당 id로 클릭 이벤트 리스너를 등록하면 됩니다.
Written on August 23, 2018