Android
[Android] DrawerLayout 적용 및 appbar toggle
Dev.hs
2021. 11. 17. 16:11
activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<androidx.drawerlayout.widget.DrawerLayout 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:id="@+id/drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
tools:openDrawer="start">
<include
android:id="@+id/app_bar_main"
layout="@layout/app_bar_main"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:visibility="visible" />
<com.google.android.material.navigation.NavigationView
android:id="@+id/nav_view"
android:layout_width="250dp"
android:layout_height="match_parent"
android:layout_gravity="start" />
</androidx.drawerlayout.widget.DrawerLayout>
- 기존 ConstraintLayout을 DrawerLayout으로 변경
- tools:opensDrawer → Design preview에서 Navigation부분을 보여준다.
MainActivity.kt
class MainActivity : AppCompatActivity() {
private lateinit var binding: ActivityMainBinding
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
binding = ActivityMainBinding.inflate(layoutInflater)
setContentView(binding.root)
val drawerLayout: DrawerLayout = binding.drawerLayout
val topAppBar = binding.appBarMain.topAppBar
// setSupportActionBar(topAppBar)
ActionBarDrawerToggle(this, drawerLayout, topAppBar, 0, 0)
}
}
setSupportActionBar 사용시 우측상단 more버튼이 사라짐.
기존 Drawer template에는
androidx.appcompat.widget.Toolbar
를 사용하지만com.google.android.material.appbar.MaterialToolbar
를 이용해서 만든 차이인것같은데 더 개발해보고 이부분은 다시..ActionBarDrawerToggle을 사용해야 앱바의 menu버튼에 이벤트가 바인드된다.
ActionBarDrawerToggle API의 4,5번째 파라미터는 우선 크게 중요하진 않은것같다.
public ActionBarDrawerToggle (Activity activity, DrawerLayout drawerLayout, Toolbar toolbar, int openDrawerContentDescRes, int closeDrawerContentDescRes)
What is the ghost of openDrawerContentDescRes and closeDrawerContentDescRes