Googleの受信トレイアプリで新しいメールを作成しているのを見ましたが、ツールバーには戻るボタン(矢印)の代わりに「閉じる」ボタンがあります(写真を参照)。
どうすればこれを達成できますか?
回答:
使用する
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;
}
onSupportNavigateUp()
何ですか?ドキュメントには、それは単なる成功の旗であると書かれています
@drawable/ic_close_black_24dp
から来たの?
マニフェストで親アクティビティを定義する代わりに、次の例のように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);
}