web-dev-qa-db-ja.com

戻るではなくツールバーのマテリアル「閉じる」ボタン

GoogleのInbox Appで、新しいメールを作成し、戻るボタン(矢印)の代わりにツールバーに「閉じる」ボタンがあることを確認しました(図を参照)。

どうすればこれを達成できますか?

inbox compose close button

75
Marta Rodriguez

つかいます

this.getSupportActionBar().setHomeAsUpIndicator(R.drawable.ic_action_close);

これを達成するために。

独自の閉じるアイコンを作成するか、GitHubの 材料設計アイコンセット から取得できます。また、この行を上の行の前に追加して、閉じる矢印として閉じる機能を作成します。

this.getSupportActionBar().setDisplayHomeAsUpEnabled(true);
100
Alok Nair

マニフェストで親を定義し、もちろんサポートアプリバーを使用する場合は、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;
}

enter image description here

18
worked

返事が遅れて申し訳ありません。 iはあなたにとって最も簡単な解決策を見つけました。ここでのすべての答えは私にはうまくいきません(because i want to use toolbar not actionBar due to theming)。そのため、xmlレイアウトを介して閉じるボタンを追加してみてください。そしてそれは動作します。

これは、ツールバーに閉じるボタンを追加するためのXML構文です(v7)。

app:navigationIcon="@drawable/ic_close_black_24dp"

ここのansは出力イメージです output image

5
Rk215 Tech
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
toolbar.setTitle("Search");
toolbar.setNavigationIcon(R.drawable.abc_ic_clear_mtrl_alpha);
setSupportActionBar(toolbar);
5
krishnan

マニフェストで親アクティビティを定義する代わりに、この例のように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);
}
2
34m0