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 ...
随机推荐
- JavaScript新手学习笔记4——我记不住的几个坑:短路逻辑、按值传递、声明提前
1.短路逻辑 逻辑运算中,如果前一个条件已经可以得出最终结论,则后续所有条件不再执行!这里的逻辑运算指的是逻辑与和逻辑或. 我们要理解逻辑与是两个条件都为真的时候,才为真,如果第一个就是假的,那么后面 ...
- openwrt上网配置的一些理解(三)
接着上面的继续捣腾multiwan,首先考虑一下上一篇中记录的multiwan配置,这里的配置是否正确,得研究一下.先贴一下上一篇的配置文件,如下: config 'multiwan' 'config ...
- ARM Cortex-M
振荡周期.时钟周期.机器周期.指令周期 一个机器周期包含12个振荡周期或6个时钟周期 指令的执行时间称作指令周期(单.双.四周期) (1)振荡周期 振荡周期指为单片机提供定时信号的振荡源的 ...
- linux内存机制
~# free -m total used free shared buffers cachedMem: 16086 8579 7507 0 152 800 ...
- linux下查阅文件内容cat,more,less,tail
1.常用cat,直接查看,一次性全部输出 cat filename cat -b filename 显示行号,除空白行 cat -n 显示行号,包括空白行 常用:cat filename | ...
- Android Log日志文件的分析、查看
Log 在android中的地位非常重要,要是作为一个android程序员不能过分析log这关,算是android没有入门吧 . 下面我们就来说说如何处理log文件 什么时候会产生log文件呢 ?一般 ...
- C/C++中new关键字是否加括号的区别
代码: #include <iostream> using namespace std; class A{ public: int a; }; int main(){ A *a1 = ne ...
- uva 688 - Mobile Phone Coverage
经典问题,矩形面积并. 解法:一.矩形分割,每个矩形的两个横坐标和两个纵坐标排序,这样得到2n*2n个区间,对这些区间依次判断是否包含在n个矩形中间即可. 二.扫描线.具体还没实现过. 详见 ...
- SSH-key密钥生成
为了能够不用输入密码访问git库(github/gitlab),需要使用ssh key ssh-keygen -t rsa -C "<your email address>&qu ...
- notepad++搜索结果不显示line XX的方法
在使用notepad++如果多次搜索,得到的结果中会出现多次line xx: line xx:,造成文件大量垃圾信息的存在,不利于找寻所需的内容,如下图. 对于这种情况, ...