[android] 뒤로가 아닌 툴바의 재질 “닫기”버튼

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;
}

여기에 이미지 설명 입력


답변

늦은 답변 죄송합니다. 나는 당신을위한 가장 쉬운 해결책을 찾았습니다 . 위의 모든 대답은 나를 위해 작동하지 않습니다 ( because i want to use toolbar not actionBar due to theming). 그래서 xml 레이아웃을 통해 닫기 버튼을 추가해보세요. 그리고 그것은 작동합니다.

다음은 toolbar (v7)에 닫기 버튼을 추가하는 xml 구문입니다.

app:navigationIcon="@drawable/ic_close_black_24dp"

여기 ans는 출력 이미지입니다 출력 이미지


답변

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>


답변