ツールバーにホームアイコンと戻るアイコンの両方を表示することはできますか? 1)戻るボタンアイコンとホームアイコンの表示順を入れ替えることは可能ですか?現在、最初に矢印ボタンが表示され、次にロゴ(ホームボタン)が表示されます。
2)2番目の要件は、ホームアイコンをクリックしてアクティビティスタックをクリアし、戻るボタンの場合は前の画面に戻ることです。
矢印キーとロゴとして設定されたホームアイコンを表示する次のコードがあります。これらのアイコンの両方でクリックイベントを処理することは可能ですか?
Toolbar toolbar = (Toolbar)findByViewID(R.id.toolbar);
toolbar.setNavigationIcon(R.drwable.btn_back);
setSuppportActionBar(toolbar);
getSupportActionBar().setLogo(R.drawable.home_icon);
getSupportActionBar().setDisplayShowTitleEnabled(false);
getSupportActionBar().setHomeButtonEnabled(true);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
OnOptionsITemSelectedメソッドで処理することで、矢印アイコンをクリックして処理することができます。ロゴアイコンのクリックを処理する方法はありますか?私のアイデアは、ホームボタンのクリックを使用してアクティビティのスタックをクリアし、戻るボタンを使用して前の画面に戻ることです。
私が試した
toolbar.setNavigationOnClickListener()
ただし、戻るボタンのクリックには影響しません。
Android.R.id.homeの処理は、
onOptionsItemSelected()
戻るために。これでうまくいきました。
@Override
public boolean onOptionsItemSelected(MenuItem menuItem) {
switch (menuItem.getItemId()) {
case Android.R.id.home:
Intent homeIntent = new Intent(this, HomeActivity.class);
homeIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(homeIntent);
}
return (super.onOptionsItemSelected(menuItem));
}
これで試して
toolbar.setOnMenuItemClickListener(new Toolbar.OnMenuItemClickListener() {
@Override
public boolean onMenuItemClick(MenuItem item) {
if (item.getItemId() == Android.R.id.home) {
getActivity().finish();
}
return true;
}
});