ActionBar and ToolBar

本文探讨了在Android开发中遇到的问题,即在使用Toolbar替代ActionBar时,Home按钮图标无法正常显示的原因及解决方案。重点介绍了如何通过正确设置NavigationIcon属性来实现自定义图标显示,以及设置Toolbar为ActionBar样式的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

之前一直没怎么用ActionBar,现在因为项目的需要特意去网上查了一些资料,发现确实挺好用,但是也有很多小细节要注意的地方!

有一个地方困扰我很久:

做项目的时候ic_launch的左边的那个图标一直没有出现,找了好久都没发现原因!该设置的都设置了!(貌似是因为Toolbar没有这样的效果了)

如果是用ActionBar的话也不能用新的style,要使用旧版本的Theme.Holo之类的才行!

通过设置Navigation Icon 来改变icon。但是ToolBar和ActionBar的方式有一点不同

ActionBar在xml文件的style中更改:

<style name="YourTheme" parent="@style/Theme.Sherlock.Light.DarkActionBar">
    <item name="homeAsUpIndicator">@drawable/new_indicator</item>
    <item name="android:homeAsUpIndicator">@drawable/new_indicator</item>
</style>

ToolBar就在java代码中直接设置:

 Toolbar mToolBar = (Toolbar) findViewById(R.id.chart_center_toolBar);
        setSupportActionBar(mToolBar);
        ActionBar actionBar = getSupportActionBar();
        actionBar.setDisplayHomeAsUpEnabled(true);
        actionBar.setHomeButtonEnabled(true);
        mToolBar.setNavigationIcon(R.drawable.abc_ic_menu_share_mtrl_alpha);

这上面几行代码都有其用处,设置Icon必须要在 setSupportActionBar(mToolBar)和actionBar.setDisplayHomeAsUpEnabled(true);之后,

不然没有效果, setSupportActionBar(mToolBar)的作用就是将Toolbar当做ActionBar使用,

actionBar.setDisplayHomeAsUpEnabled(true),调用setDisplayHomeAsUpEnable()是Up图标生效,(要使用actionbar 而且要使用旧版本的Theme)

actionBar.setHomeButtonEnabled(true);使home button 可以点击!


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值