アプリでナビゲーションドロワー(画面の左側からスライドして開くナビゲーションの種類)を使用しています。さて、通常はアプリのアイコンをタップして開くこともできます。調べてみると、アクティビティに追加するコードがたくさん見つかりました。そして、単純なボタンのためだけに。それは私が探しているものではないと思いますか?そして、それが本当に1つのボタンに対して非常に多くのコードである必要がある場合、コードをより明確にするための最良の方法は何ですか?ありがとう、そしてそのようなAndroid newbであることをお詫びします。
@Kernaldが提案したようにActionBarDrawerToggleがすでにあると仮定すると、この問題にも遭遇しました。アクティビティに以下も追加する必要があります。
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Pass the event to ActionBarDrawerToggle, if it returns
// true, then it has handled the app icon touch event
if (mDrawerToggle.onOptionsItemSelected(item)) {
return true;
}
// Handle your other action bar items...
return super.onOptionsItemSelected(item);
}
これにより、アクションバーのアイコンボタンを押すトグルハンドルを使用して、ドロワーをスライドさせます。
必要なものはすべて、Googleの Navigation Drawer Guide に記載されています。基本的に、ActionBarで「アップ」アクションを有効にする必要があります。
getActionBar().setDisplayHomeAsUpEnabled(true);
getActionBar().setHomeButtonEnabled(true);
次に、それをトグルにバインドする必要があります。
mDrawerToggle = new ActionBarDrawerToggle(
this, /* Host Activity */
mDrawerLayout, /* DrawerLayout object */
R.drawable.ic_drawer, /* nav drawer icon to replace 'Up' caret */
R.string.drawer_open, /* "open drawer" description */
R.string.drawer_close /* "close drawer" description */
) {
/** Called when a drawer has settled in a completely closed state. */
public void onDrawerClosed(View view) {
getActionBar().setTitle(mTitle);
}
/** Called when a drawer has settled in a completely open state. */
public void onDrawerOpened(View drawerView) {
getActionBar().setTitle(mDrawerTitle);
}
};
// Set the drawer toggle as the DrawerListener
mDrawerLayout.setDrawerListener(mDrawerToggle);