[안드로이드] setDisplayShowCustomEnabled()는 뭐하는 함수인가?
안녕하세요. 개발자 드리머즈입니다.
안드로이드에서 툴바Toolbar를 다루다 setDisplayShowCustomEnabled()라는 함수를 발견했습니다.
1 2 3 4 | Toolbar mToolbar = (Toolbar) findViewById(R.id.main_toolbar); setSupportActionBar(mToolbar); getSupportActionBar().setDisplayShowCustomEnabled(ture); //커스터마이징 하기 위해 필요 | cs |
정확하게 뭐하는 함수인지 몰라 찾아봤습니다.
안드로이드 디벨로퍼 사이트에 의하면 아래와 같은 설명이 있습니다.
Set whether a custom view should be displayed, if set.
To set several display options at once, see the setDisplayOptions methods.
커스텀 뷰를 보여줄 지 말 지를 정하는 함수라고 합니다. 그런데 이 정보로는 정확하게 무슨 말인지 잘 모르겠습니다. 좀 더 정보를 찾아보겠습니다.
여기에서 아래의 정보를 찾았습니다.
To download a sample app about creating a custom view in the ActionBar to show a Done button, see Android DoneBar Sample.
Android DoneBar Sample에 가면 아래의 설명이 있습니다.
API 11 introduced the ActionBar as a navigational UI element. In most cases, a custom view isn't required or even recommended, as using a menu xml file is all that is needed to add action icons to it. However, it is possible to use a custom view and it is useful in some cases.
대부분의 경우 커스텀 뷰는 필요가 없고 심지어 추천되지 않는다고 합니다. 왜냐하면 메뉴 xml 파일을 사용하는 것만 하면 액션바ActionBar에 액션 아이콘을 추가할 수 있기 때문입니다. 하지만 커스텀 뷰를 사용하는 것은 가능하고 어떤 경우에는 도움이 된다고 합니다.
위의 사진에 빨간 색으로 표시한 것이 액션바 안에 사용된 커스텀 뷰입니다. 이 커스텀 뷰를 사용하기 위해서 필요한 함수가 setDisplayShowCustomEnabled()라고 합니다. 제가 보기에도 실제로 앱 바에서 커스텀 뷰를 사용할 일은 거의 없을 것 같습니다.
그런데 신기한 점은 앱바의 타이틀 중앙 정렬을 하기 위해 사용하는 xml 코드에서 아래처럼 Toolbar 내부에 <TextView>를 사용하는 경우가 있습니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | <?xml version="1.0" encoding="utf-8"?> <android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="wrap_content" xmlns:tools="http://schemas.android.com/tools" android:background="@color/gonggaPink" android:minHeight="?attr/actionBarSize" app:popupTheme="@style/ThemeOverlay.AppCompat.Light" app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Toolbar Title" android:layout_gravity="center" android:id="@+id/toolbar_title" android:textSize="20sp" /> </android.support.v7.widget.Toolbar> | cs |
이 내부의 <TextView>는 커스텀 뷰에 속하지 않는 것인지 setDisplayShowCustomEnabled(false)로 해도 <TextView>는 잘 보이네요.
댓글 영역