1

我正在使用mikepenz 抽屉库,但我想用我自己的可绘制图标更改默认的汉堡图标和后退箭头图标。

我已经尝试了很多次,但我无法用自己的图标更改图标

谁能帮我 ?

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

我还没有尝试过使用该库,但是,请尝试以下操作:

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 回答
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 回答
0

通过修改以下内容尝试此操作:

 result.getActionBarDrawerToggle().setDrawerIndicatorEnabled(true);

 result.getActionBarDrawerToggle().setDrawerIndicatorEnabled(false);

此禁用库默认图标然后更改图标...

 getSupportActionBar().setHomeAsUpIndicator(R.drawable.my_drawable);
于 2016-07-30T12:31:13.737 回答
0

private DrawerLayout drawerLayout;
private ActionBarDrawerToggle actionBarDrawerToggle;
Toolbar toolbar;
String Drawer_Open,Drawer_Close;

@Override

protected void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
toolbar=(Toolbar)findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
//set it button icon
getSuppotActionBar().setDisplayHomeAsUpEnabled(true);
//set it makes button Clickble
getSuppotActionBar().setHomeButtonEnabled(true);
//set your own icon by using this code
getSuppotActionBar().setHomeAsUpIndicator(R.drawable.my_icon);
drawerLayout=(DrawerLayout)findViewById(R.id.drawer_layout);
actionBarDrawerToggle=new ActionBarDrawerToggle(this,drawerLayout,toolbar,Drawer_Open,Drawer_Close);
drawerLayout.serDrawerListener(actionBarDrawerToggle);
}

}

再次,您有任何疑问,请在这里咨询我.....,希望您能解决您的问题...

于 2016-07-30T13:13:44.863 回答