文档章节

a20隐藏底部按钮及隐藏状态栏和虚拟按键栏

吃草小蚁
 吃草小蚁
发布于 2013/12/11 18:09
字数 389
阅读 425
收藏 0

隐藏RecentButton按钮:

在源码android4.2/frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/tablet/TabletStatusBar.java的makeStatusBarView()方法中添加(这是全志android4.2.2版本(SDK1.3)的路径)

{Z:\A20_V3.0.1\android\frameworks\base\packages\SystemUI\src\com\android\systemui\statusbar\phone\NavigationBarView.java这是全志android4.2.2版本(SDK3.0)的路径}

mRecentButton.setVisibility(View.GONE);

代码位置(makeStatusBarView()方法中):

        // The navigation buttons
        mBackButton = (ImageView)sb.findViewById(R.id.back);
        mNavigationArea = (ViewGroup) sb.findViewById(R.id.navigationArea);
        mHomeButton = mNavigationArea.findViewById(R.id.home);
        mMenuButton = mNavigationArea.findViewById(R.id.menu);
        mVolumeDownButton = mNavigationArea.findViewById(R.id.volume_down);
        mVolumeUpButton = mNavigationArea.findViewById(R.id.volume_up);
        mRecentButton = mNavigationArea.findViewById(R.id.recent_apps);
        mRecentButton.setOnClickListener(mOnClickListener);
                mRecentButton.setVisibility(View.GONE);//wangjian
        
        mScreenShotButton = mNavigationArea.findViewById(R.id.screenshot);
        mScreenShotButton.setOnClickListener(mOnClickListener);
        
        LayoutTransition lt = new LayoutTransition();
        lt.setDuration(250);

我没有验证留下一下代码的可行性,为了保险我屏蔽了setNavigationVisibility(int visibility)方法中的

mRecentButton.setVisibility(disableRecent ? View.INVISIBLE : View.VISIBLE);

这段代码,位置如下(橘色部分):


    private void setNavigationVisibility(int visibility) {
        boolean disableHome = ((visibility & StatusBarManager.DISABLE_HOME) != 0);
        boolean disableRecent = ((visibility & StatusBarManager.DISABLE_RECENT) != 0);
        boolean disableBack = ((visibility & StatusBarManager.DISABLE_BACK) != 0);

        
        boolean disableVolumeUp = (visibility != 0);
        boolean disableVolumeDown = (visibility != 0);
        
        mBackButton.setVisibility(disableBack ? View.INVISIBLE : View.VISIBLE);
        mHomeButton.setVisibility(disableHome ? View.INVISIBLE : View.VISIBLE);
        //mRecentButton.setVisibility(disableRecent ? View.INVISIBLE : View.VISIBLE);


        
        if(mContext.getResources().getBoolean(R.bool.hasVolumeButton))
        {
            mVolumeUpButton.setVisibility(disableVolumeUp ? View.INVISIBLE : View.VISIBLE);
            mVolumeDownButton.setVisibility(disableVolumeDown ? View.INVISIBLE : View.VISIBLE);
        }

这样就可隐藏RecentButton,隐藏MenuButton,screenshot按钮方法如下:

在源码android4.2/frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/tablet/TabletStatusBarView.java中

将所有         menu.setVisibility(View.VISIBLE);
                screenshot.setVisibility(View.VISIBLE);两个设置改为

                menu.setVisibility(View.GONE);
                screenshot.setVisibility(View.GONE);

这个方法比较蠢,但管用!可以试试!

如果要彻底隐藏状态栏和底部虚拟按键可以在

android\frameworks\base\core\res\res\values\dimens.xml中将status_bar_height、navigation_bar_height、navigation_bar_height_landscape这三个值改为0即可,如下:

    <dimen name="status_bar_height">0dip</dimen>

    <!-- Height of the bottom navigation / system bar. -->

    <dimen name="navigation_bar_height">0dp</dimen>

    <!-- Height of the bottom navigation bar in portrait; often the same as @dimen/navigation_bar_height -->

    <dimen name="navigation_bar_height_landscape">0dp</dimen>

如图

© 著作权归作者所有

共有 人打赏支持
吃草小蚁
粉丝 15
博文 63
码字总数 110019
作品 0
深圳
高级程序员
私信 提问
如何适配Android底部虚拟按键

前言 本文章只做一个记录,一个备忘,也为了更好的帮助他人,文章参考地址:Android适配底部虚拟按键的方法 问题说明 项目进行中需要透明渐变的状态栏,全屏显示,当然透明渐变好弄,方法有很...

no白菜
04/13
0
0
动态显示和隐藏状态栏(包括底部虚拟按键)

小米Launcher有一个细节上的功能效果:在长按桌面应用图标时,会隐藏状态栏,然后在状态栏原有的布局上显示卸载或删除的操作栏。放手后,操作栏隐藏,状态栏显示出来。也就是说,这个过程是涉...

不正经啊不正经
2015/07/29
0
1
(转载)iPhoneX适配之UI设计、交互设计

原文地址:http://blog.csdn.net/u011363981/article/details/78011757#reply 前言 苹果近日发布了全新的iPhone X全面屏手机,这也是首款采用OLED屏幕的iPhone手机,它的正面设计被更多人吐槽...

小曼study
2017/10/23
0
0
Android Activity设置全屏

Activity设置全屏显示(隐藏标题栏和状态栏): 方法一: 在Activity oncreate()方法中 //隐去电池等图标和一切修饰部分(状态栏部分) this.getWindow().setFlags(WindowManager.LayoutParams...

SRain215
2016/07/05
69
2
Android简单实现系统状态栏设置

github代码直通车 啥也不说了,先上效果图: giphy.gif 设置状态栏透明,通过添加WindowManager.LayoutParams.FLAGTRANSLUCENTSTATUS属性设置。 给状态栏设置颜色: 1.首先调用上面的setTran...

翻滚吧李博
2017/11/23
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Nginx 内置请求参数

nginx内置变量 内置变量存放在 ngx_http_core_module 模块中,变量的命名方式和apache 服务器变量是一致的。总而言之,这些变量代表着客户端请求头的内容,例如$http_user_agent, $http_coo...

大木老师故事的小黄花
30分钟前
1
0
我为什么坚持写作

说写作可能是抬高了自己,目前来说只能是写东西、记录东西、表达观点和情感。 在俞敏洪的公众号上看到过一篇文章,里面讲了一个观点,大概是说写作不求能写出伟大的作品,只是把自己的生活、...

Bob2100
今天
1
0
中国公有云三巨头,同时支持Rancher Kubernetes平台

华为云容器引擎(CCE)、阿里云K8S容器服务(ACK)和腾讯云K8S引擎(TKE),中国公有云三巨头正式全面支持Rancher Kubernetes平台。 Rancher正式宣布扩大对中国领先Kubernetes服务的支持,华...

RancherLabs
今天
1
0
【NLP】【八】基于keras与imdb影评数据集做情感分类

【一】本文内容综述 1. keras使用流程分析(模型搭建、模型保存、模型加载、模型使用、训练过程可视化、模型可视化等) 2. 利用keras做文本数据预处理 【二】环境准备 1. 数据集下载:http:...

muqiusangyang
今天
1
0
nginx 解决session一致性

session 粘滞性 每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。 upstream backserver {ip_hash;server 192.168.0.14:88;server 192.1...

zhu_kai1
今天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部