android4.4 SystemUI的分析及滑动navigation的显示和隐藏

整理了一下先前对android4.4中Systemui代码的一些分析:

一、通知栏的时间和日期显示布局在status_bar_expanded_header.xml中,可在该xml下添加快捷显示

二、通知栏的头布局在status_bar_expanded.xml中,在PhoneStatusBar.java中进行布局加载

三、QuickSettings.java通知栏快捷设置在该类中加载,布局为quick_settings.xml
      QuickSettingsBasicTile添加快捷图标的icon和text
      mtk_quick_settings_tile_basic.xml右边下拉栏的图标icon,text显示布局
      QuickSettingsConnectionModel.java设置一些图标的显示

四、滑动显示和隐藏底部的导航栏navigation

可参考文章点击打开链接

1、在IStatusBar.aidl和IStatusBarService.aidl中定义aidl接口

目录:

\alps\frameworks\base\core\java\com\android\internal\statusbar\IStatusBar.aidl
\alps\frameworks\base\core\java\com\android\internal\statusbar\IStatusBarService.aidl
添加方法:
 /**showNavigationBar add by jon*/
    void showNavigationBar();
2、在StatusBarManagerService.java和PhoneWindowManager.java中定义showNavigationBar()方法

目录:

1)、\alps\frameworks\base\policy\src\com\android\internal\policy\impl\PhoneWindowManager.java
添加方法:
                   @Override
                    public void onSwipeFromBottom() {
                        if (mNavigationBar != null && mNavigationBarOnBottom) {
                            requestTransientBars(mNavigationBar);
                        }else
						{//add by jon
							showNavigationBar();
						}
                    }

......

 private void showNavigationBar()//add by jon
	 {
		 mHandler.post(new Runnable()
		 {
			 @Override
				 public void run()
			 {
				 try
			     {
					 IStatusBarService statusbar=getStatusBarService();
					 if(null!=statusbar)
					 {
						 statusbar.showNavigationBar();

					 }
				 }catch(RemoteException  e)
				 {
					 mStatusBarService =null;
				 }
			 }

		 });

	 }


2)、\alps\frameworks\base\services\java\com\android\server\StatusBarManagerService.java
添加方法:

 @Override
    public void showNavigationBar()//add by jon
	{
		enforceStatusBar();

        synchronized(mLock)
		{
			mHandler.post(new Runnable()
			{
				public void run()
				{
					if(null!=mBar)
					{
						try
						{
							mBar.showNavigationBar();
						}
						catch (RemoteException ex)
						{
						}

					}//if


				}
			});
		}
        

	}

3、CommandQueue.java   (extends IStatusBar.Stub)

添加:

 private static final int MSG_SHOW_NAVIGATIONBAR = 21 << MSG_SHIFT;//add by jon
 ......
 public void showNavigationBar();//add by jon
 ......
 public void showNavigationBar()//add by jon
    {
    	synchronized(mList)
    	{
    		mHandler.removeMessages(MSG_SHOW_NAVIGATIONBAR);
    		mHandler.sendEmptyMessage(MSG_SHOW_NAVIGATIONBAR);
    	}
    	
    }

4、PhoneStatusBar.java


@Override
	// CommandQueue
	public void showNavigationBar() {//add by jon
		if (null != mNavigationBarView) {
			return;
		} else {
			 final Context contex=mContext;
			
			 int layoutId = R.layout.navigation_bar;
			 if(RecentsActivity.FLOAT_WINDOW_SUPPORT){
			 layoutId = R.layout.navigation_bar_float_window;
			 }
			 /// @}
			 mNavigationBarView =
			 (NavigationBarView) View.inflate(contex,layoutId, null);
			
			 mNavigationBarView.setDisabledFlags(mDisabled);
			 mNavigationBarView.setBar(this);
			 mNavigationBarView.setOnTouchListener(new
			 View.OnTouchListener() {
			 @Override
			 public boolean onTouch(View v, MotionEvent event) {
			 checkUserAutohide(v, event);
			 return false;
			 }});
			addNavigationBar();
		}

	}

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 在 Android 系统中,配置导航栏上滑显示需要对系统 UI 进行相应的设置和操作。一般来说,这个过程需要遵循以下几个步骤: 1. 打开 Android 系统设置,并找到“系统 UI tuner”选项。 2. 进入“System UI Tuner”页面,选择“Navigation bar”选项。 3. 在“Navigation bar”页面,勾选“Swipe up on home button”选项。 4. 接下来,用户可以根据自己的需要选择相应的设置项。比如,可以选择当用户在主屏幕滑动或者点击主屏幕按钮时,导航栏是否应该显示。还可以设置是否需要快速启动 Google 助手或其他应用。另外,还可以设置不同手势触发不同导航栏功能或者更改导航栏的界面样式等。 5. 最后,如果您想要禁用这个特性,只需要在“Navigation bar”页面取消勾选“Swipe up on home button”选项即可。 需要注意的是,以上步骤仅适用于当前运行的 Android 版本中存在“System UI Tuner”选项的设备。此外,一些 Android 设备可能会拥有各自不同的配置选项和界面,所以在实际操作时,最好先了解自己的设备型号和 Android 版本,并参考相应的用户手册或者官方文档。 ### 回答2: Android系统UI配置导航栏上滑显示,主要是通过系统的设置菜单来实现。在大多数的Android设备中,该功能都是默认开启的,但是在某些旧型号的设备上,可能需要手动开启才能使用。 为了开始配置导航栏上滑显示,首先需要进入系统的设置菜单。具体进入方式可能会因设备型号而异,但通常可以通过从主屏幕或应用程序菜单中选择“设置”来进入。 打开设置菜单后,需要找到“显示”或“屏幕”选项。然后,可以在下拉菜单中找到“导航栏”选项,点击进入。 在导航栏设置中,可以看到“导航栏上滑显示”选项。默认情况下,该选项应该是开启状态,但如果不是,可以通过开关按钮来手动开启。 在开启导航栏上滑显示功能后,可以测试它是否正常工作。要测试它,只需要在应用程序或主屏幕中向上滑动,应该会出现导航栏。如果导航栏未出现,可能需要重新启动设备或检查是否有其他应用程序干扰导航栏显示。 需要注意的是,导航栏上滑显示功能在Android系统中的不同版本中可能有所不同。在一些最新的系统版本中,导航栏上滑显示可能已被替换为新的手势导航功能。因此,在进行上述设置时,需要查看设备所运行的Android系统版本,并根据版本进行相应的设置。 ### 回答3: Android 系统 UI 配置导航栏上滑显示是指在 Android 手机或平板设备中,将导航栏隐藏显示控制与手势上滑事件进行了关联,使得用户在上滑操作时能够显示或者隐藏底部的导航栏。 在 Android 操作系统中,导航栏通常位于设备底部,用于进行返回、主屏幕、多任务查看等基本操作。原本,导航栏不会自动隐藏,只有在使用全屏模式时才会自动隐藏,但是在 Android 操作系统 4.4(KitKat)版本中,Google 引入了一项新特性,允许用户启用手势上滑操作,使得导航栏能够随着手势上滑自动隐藏,并在需要时进行显示。 要在 Android 设备上启用这个选项,可以通过以下步骤进行配置: 1. 首先,确保您的 Android 设备运行的是 4.4 版本及以上的系统版本。 2. 进入系统设置界面,找到“显示”选项。 3. 在显示选项中,找到“导航栏”选项,点击进入该设置页面。 4. 在导航栏设置页面中,找到“全屏手势”选项,并将其打开。 5. 启用全屏手势之后,您就可以进行手势上滑来显示隐藏底部的导航栏了。 需要注意的是,启用全屏手势选项后,手势上滑操作就会与设备的“向上滑动以解锁”功能进行了关联,因此您需要在滑动操作后进行解锁才能进入系统界面。 总的来说,Android 系统 UI 配置导航栏上滑显示是一项非常实用的功能,可以提高用户的操作体验、提高屏幕使用率,并适用于绝大多数的 Android 手机和平板设备。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值