1

mikepenz drawer ライブラリを使用していますが、デフォルトのハンバーガー アイコンと戻る矢印アイコンを独自の描画可能アイコンに変更したいと考えています。

何度も試しましたが、自分のアイコンでアイコンを変更できません

誰でも私を助けることができますか?

new DrawerBuilder()
    .withActivity(this)
    .withTranslucentStatusBar(false)
    .withActionBarDrawerToggle(false)
    .withToolbar(toolbar)
    .addDrawerItems(
        //pass your items here
    )
    .build();

ハンバーガー アイコンを表示するコード:

getSupportActionBar().setDisplayHomeAsUpEnabled(false);
result.getActionBarDrawerToggle().setDrawerIndicatorEnabled(true);

以下は私が何度も見つけたコードですが、これも試しましたがうまくいきませんでした

Drawable upArrow = getResources().getDrawable(R.drawable.my_drawable);

        actionBar.setHomeAsUpIndicator(upArrow);
        actionBar.setDisplayHomeAsUpEnabled(true);
        actionBar.setHomeButtonEnabled(true); 

また、検索しているときに、ドロワービルダーでツールバーを渡すとアイコンを変更できないこともわかったので、どうすればよいか教えてもらえますか?

4

4 に答える 4

1

このリンクwithToolbar()に従って、 をから削除する必要がありDrawerBuilderます。その後、自分で開閉を完全に処理する必要があります。

そのために、あなたはそのようなことをすることができます

protected void onCreate(Bundle savedInstanceState) {
        ...
        getSupportActionBar().setDisplayHomeAsUpEnabled(true);
        getSupportActionBar().setDefaultDisplayHomeAsUpEnabled(false);
        toggle.setDrawerIndicatorEnabled(false);
        toggle.setHomeAsUpIndicator(R.drawable.ic_custom_drawer_icon);
        ...
    }

また、カスタム ドロワー アイコンのクリック イベントをリッスンするために、ツールバー ナビゲーション クリック リスナーを追加する必要がありました。

protected void onCreate(Bundle savedInstanceState) {
        ...
        toggle.setToolbarNavigationClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
                if (drawer.isDrawerOpen(GravityCompat.START)) {
                    drawer.closeDrawer(GravityCompat.START);
                } else {
                    drawer.openDrawer(GravityCompat.START);
                }
            }
        });
        ...
    }

必要に応じていつでもアイコンを動的に更新できます。

toggle.setHomeAsUpIndicator(R.drawable.ic_new_icon);

これがあなたを助けることを願っています。

于 2016-07-30T12:32:52.103 に答える
1

そのライブラリで試したことはありませんが、次のことを試してください。

ActionBar actionBar = getSupportActionBar();
        if (actionBar != null) {
            final Drawable upArrow = getResources().getDrawable(R.drawable.my_drawable);

            actionBar.setHomeAsUpIndicator(upArrow);
            actionBar.setDisplayHomeAsUpEnabled(true);
            actionBar.setHomeButtonEnabled(true);
        }
于 2016-07-30T11:59:25.593 に答える
0

以下を変更してこれを試してください:

 result.getActionBarDrawerToggle().setDrawerIndicatorEnabled(true);

 result.getActionBarDrawerToggle().setDrawerIndicatorEnabled(false);

これはライブラリのデフォルトアイコンを無効にし、アイコンを変更します...

 getSupportActionBar().setHomeAsUpIndicator(R.drawable.my_drawable);
于 2016-07-30T12:31:13.737 に答える