당신이 경우 한 사용 AppCompatActivity
하고 자동하지 싶었 기 때문에, 사용하지 않을의 경로 아래로 갔다 ActionBar
가 제공하는 당신이 밖으로 분리를 원하기 때문에, Toolbar
때문에 당신의 재료 설계 요구 사항과의 CoordinatorLayout
또는AppBarLayout
, 다음, 이것을 고려 :
당신은 여전히을 사용할 수 있으며 AppCompatActivity
, <android.support.v7.widget.Toolbar>
XML에서을 사용할 수 있도록 사용을 중단 할 필요는 없습니다 . 액션 바 스타일을 끄십시오.다음과 같이 을 .
먼저, 당신은 당신처럼하는 NoActionBar 테마 중 하나에서 스타일을 도출 styles.xml
, 내가 사용 Theme.AppCompat.Light.NoActionBar
과 같이 :
<style name="SuperCoolAppBarActivity" parent="Theme.AppCompat.Light.NoActionBar">
<item name="colorPrimary">@color/primary</item>
<!-- colorPrimaryDark is used for the status bar -->
<item name="colorPrimaryDark">@color/primary_dark</item>
...
...
</style>
앱 매니페스트에서 방금 정의한 자식 스타일 테마를 다음과 같이 선택하십시오.
<activity
android:name=".activity.YourSuperCoolActivity"
android:label="@string/super_cool"
android:theme="@style/SuperCoolAppBarActivity">
</activity>
Activity Xml에서 툴바가 다음과 같이 정의 된 경우 :
...
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
/>
...
그런 다음이 부분이 중요 합니다. 지원 작업 표시 줄을 확장중인 AppCompatActivity로 설정 하면 XML의 도구 모음 이 작업 표시 줄이됩니다. 사용자 지정 클릭 핸들러 등을 추가하지 않고도 메뉴, 자동 활동 제목, 항목 선택 처리 등과 같이 ActionBar가 허용하는 많은 작업을 간단하게 수행 할 수 있기 때문에 이것이 더 좋은 방법이라고 생각합니다.
활동의 onCreate 재정의에서 다음을 수행하십시오.
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_super_cool);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
//Your toolbar is now an action bar and you can use it like you always do, for example:
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
}