Google의 Inbox 앱에서 새 이메일을 작성하는 것을 보았습니다. 툴바에는 뒤로 버튼 (화살표) 대신 “닫기”버튼이 있습니다 (그림 참조).
이것을 어떻게 달성 할 수 있습니까?
답변
사용하다
this.getSupportActionBar().setHomeAsUpIndicator(R.drawable.ic_action_close);
이것을 달성하기 위해.
나만의 닫기 아이콘을 만들거나 GitHub에 설정된 머티리얼 디자인 아이콘 에서 가져올 수 있습니다. 또한이 줄을 위쪽 줄 앞에 추가하여 닫기 기능을 뒤로 화살표로 만듭니다.
this.getSupportActionBar().setDisplayHomeAsUpEnabled(true);
답변
물론 지원 앱 바를 사용하는 경우 매니페스트에서 부모를 정의한 다음 onSupportNavigationUp () 을 재정의 해야합니다. 또한 아이콘 팩에 대한 편리한 사이트 ( https://www.google.com/design/icons/)로 이동하십시오.
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.yourAwesomeLayout);
setupToolBar();
}
private void setupToolBar() {
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
if (toolbar == null) return;
setSupportActionBar(toolbar);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setHomeAsUpIndicator(R.drawable.ic_close_white_24dp);
}
@Override
public boolean onSupportNavigateUp() {
finish(); // close this activity as oppose to navigating up
return false;
}
답변
답변
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
toolbar.setTitle("Search");
toolbar.setNavigationIcon(R.drawable.abc_ic_clear_mtrl_alpha);
setSupportActionBar(toolbar);
답변
매니페스트에서 부모 활동을 정의하는 대안은 다음 예와 같이 onOptionsItemSelected 메서드에서 수행 할 작업을 처리하는 것입니다.
@Override
public boolean onOptionsItemSelected(MenuItem item){
switch (item.getItemId()) {
// Respond to the action bar's Up/Home/back button
case android.R.id.home:
finish();
break;
}
return super.onOptionsItemSelected(item);
}
답변
스타일을 정의 할 수 있습니다.
<style name="Theme.Toolbar.Clear">
<item name="toolbarNavigationIcon">@drawable/abc_ic_clear_mtrl_alpha</item>
</style>
테마에서 사용하십시오.
<style name="Theme.Clear">
<item name="toolbarTheme">@style/Theme.Toolbar.Clear</item>
</style>