Android——自定义Actionbar左侧覆盖不全的解决方案
今天遇到一个很蛋疼的问题,就是在自定义Actionbar的时候,setCustomView中,自定义的view怎么也覆盖不了整个视图,左侧一直留有一个空白,看下图:
所写的部分代码如下:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main); // 自定义actionbar的布局
setActionBarLayout( R.layout.actionbar_port );
} /* 自定义actionbar */
private void setActionBarLayout(int layoutId) {
ActionBar actionBar = getActionBar( );
/*使左上角图标是否显示,如果设成false,则没有程序图标,仅仅就个标题,
如果设成true,显示应用程序图标,对应id为android.R.id.home*/
actionBar.setDisplayShowHomeEnabled( false ); //使自定义的普通View能在title栏显示,即actionBar.setCustomView能起作用
actionBar.setDisplayShowCustomEnabled(true); LayoutInflater inflator = (LayoutInflater) this.getSystemService(
Context.LAYOUT_INFLATER_SERVICE);
View v = inflator.inflate(layoutId,null);
ActionBar.LayoutParams layout = new ActionBar.LayoutParams(
LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT);
actionBar.setCustomView(v,layout);
}
实际显示的时候,在4.4.2系统,ActionBar左侧有一块区域不是自定义的布局。在当前Activity的父类或者上述代码中加入如下代码,则显示正常:
//测试发现在4.4系统上,没有该代码,则ActionBar左侧出现无法覆盖问题
if (getActionBar() != null) {
getActionBar().setTitle("");
}
即有:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main); // 自定义actionbar的布局
setActionBarLayout( R.layout.actionbar_port );
} /* 自定义actionbar */
private void setActionBarLayout(int layoutId) {
ActionBar actionBar = getActionBar( );
/*使左上角图标是否显示,如果设成false,则没有程序图标,仅仅就个标题,
如果设成true,显示应用程序图标,对应id为android.R.id.home*/
actionBar.setDisplayShowHomeEnabled( false ); //使自定义的普通View能在title栏显示,即actionBar.setCustomView能起作用
actionBar.setDisplayShowCustomEnabled(true); //测试发现在4.4系统上,没有该代码,则ActionBar左侧出现无法覆盖问题
if (getActionBar() != null) {
getActionBar().setTitle("");
} LayoutInflater inflator = (LayoutInflater) this.getSystemService(
Context.LAYOUT_INFLATER_SERVICE);
View v = inflator.inflate(layoutId,null);
ActionBar.LayoutParams layout = new ActionBar.LayoutParams(
LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT);
actionBar.setCustomView(v,layout);
}
Android——自定义Actionbar左侧覆盖不全的解决方案的更多相关文章
- android 自定义ratingbar 图片显示不全的解决方案
在res/style中自定义评分条: <!-- 自定义评分条 --> <style name="roomRatingBar" parent="@andr ...
- Android 自定义ActionBar
Android 3.0及以上已经有了ActionBar的API,可以通过引入support package在3.0以下的平台引用这些API,但这儿呢,完全自定义一个ActionBar,不用引入额外ja ...
- Android自定义ActionBar
Android 3.0及以上已经有了ActionBar的API,可以通过引入support package在3.0以下的平台引用这些API,但这儿呢,完全自定义一个ActionBar,不用引入额外ja ...
- 自定义ActionBar完全覆盖系统的
//加载ActionBar的方法 @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this ...
- [安卓] 18、一个简单的例子做自定义动画按钮和自定义Actionbar
在做安卓UI的时候有时候需自定义具有动画效果的按钮或需要自定义一下actionbar~ 本节用一个简单的demo讲如何自定义具有动画效果的按钮,以及个性化的actionbar 下面是效果: 其中: △ ...
- Android中自定义ActionBar的背景色等样式style
Android中想要去自定义ActionBar的背景色等样式. [折腾过程] 1.自己找代码,发现对应的配置的地方了: AndroidManifest.xml ? 1 2 <applicatio ...
- Android UI ActionBar功能-自定义 Action Bar 样式
ActionBar的样式官方提供了三种: Theme.Holo Theme.Holo.Light Theme.Holo.Light.DarkActionBar 但不仅仅是这三种,我们还可以自己定义Ac ...
- Android查缺补漏(View篇)--自定义 View 中 wrap_content 无效的解决方案
自定义 View 中 wrap_content 无效的解决方案 做过自定义 View 的童鞋都会发现,直接继承 View 的自定义控件需要重写 onMeasure() 方法,并设置 wrap_cont ...
- wpf 自定义窗口,最大化时覆盖任务栏解决方案
原文:wpf 自定义窗口,最大化时覆盖任务栏解决方案 相信很多人使用wpf时会选择自定义美观的窗口,因此会设置WindowStyle="None" 取消自带的标题栏.但这样使用 W ...
随机推荐
- 关于MSHTML
本文翻译自http://msdn.microsoft.com/workshop/browser/mshtml/overview/overview.aspMSDN Home > MSDN Lib ...
- Linux常见面试题
一.填空题:1. 在Linux系统中,以 文件 方式访问设备 .2. Linux内核引导时,从文件 /etc/fstab 中读取要加载的文件系统.3. Linux文件系统中每个文件用 索引节点来标 ...
- [Angular 2] Build a select dropdown with *ngFor in Angular 2
We want the start-pipe more flexable to get param, so when using it, we pass a second param as statu ...
- MySQL数据库中的哈希加密
数据库安全是数据库中最为重要的环节,只有确保了数据库中数据的安全,才能够更好的发挥数据库的功能,本文将为大家介绍一种很好的数据库加密方法,即哈希加密. 导读:MySQL数据库加密的方法有很多种,不同的 ...
- [转]iOS设备唯一标识探讨
转自:http://www.jianshu.com/p/b83b0240bd0e iOS设备唯一标识探讨 为了统计和检测应用的使用数据,几乎每家公司都有获取唯一标识的业务需求,在iOS5以前获取唯一标 ...
- 内容提供者 ContentResolver 数据库 示例 -1
MainActivity public class MainActivity extends ListActivity { private TextView tv_info; priv ...
- JS的作用域和作用域链
每个函数都有自己的作用域,当执行流进入一个函数时,函数就会被推入栈中,而在函数执行之后,栈将其执行环境弹出,把控制权放回给之前的作用域,全局作用域是最外围的一个作用域,因此,所有全局变量和函数都是作为 ...
- IIS发布程序,出现:请求的内容似乎是脚本,因而将无法由静态文件处理程序来处理解决方案
windows 7(或者windows 2008)+iis7.5 出现如下错误的解决方法: 错误描述:请求的内容似乎是脚本,因而将无法由静态文件处理程序来处理 解决方法: 打开cmd命令窗口,执行如下 ...
- 小技巧之jQueryMobile
使用JqueryMobile+MVC做一个手机网站,也有2个月了.有一些小小的经验,跟大伙们分享一下下 小技巧1: 禁用所有Ajax加载,它会很烦人的. $.mobile.ajaxLinksEnabl ...
- 拦截Response.Redirect的跳转并转换为Js的跳转
有一个很常见的需求,某个页面需要用户登录才能访问,或者某个操作需要用户登录 这就需要检测用户登录,一般是使用Ajax去检测是否登录,当用户未登录时跳转到登录页面 那么问题来了···· 有的时候我们跳转 ...