Android 7.1 系统Setting界面增加返回机制

Android系统在设置了隐藏状态栏和虚拟按键之后,进入Setting界面,没有鼠标的话就无法返回了。这里我们通过修改源码,

实现返回到桌面的功能。具体代码路径如下:

1. packages\apps\Settings\src\com\android\settings\SettingsActivity.java

 if (!mIsShowingDashboard) {
     mDisplaySearch = false;
     // UP will be shown only if it is a sub settings
     if (mIsShortcut) {
         mDisplayHomeAsUpEnabled = isSubSettings;
     } else if (isSubSettings) {
         mDisplayHomeAsUpEnabled = true;
     } else {
         mDisplayHomeAsUpEnabled = false;
     }
     setTitleFromIntent(intent);

     Bundle initialArguments = intent.getBundleExtra(EXTRA_SHOW_FRAGMENT_ARGUMENTS);
     switchToFragment(initialFragmentName, initialArguments, true, false,
             mInitialTitleResId, mInitialTitle, false);
 } else {
     // No UP affordance if we are displaying the main Dashboard
     mDisplayHomeAsUpEnabled = false;
     // Show Search affordance
     mDisplaySearch = true;
     mInitialTitleResId = R.string.dashboard_title;

     // add argument to indicate which settings tab should be initially selected
     final Bundle args = new Bundle();
     final String extraName = DashboardContainerFragment.EXTRA_SELECT_SETTINGS_TAB;
     args.putString(extraName, intent.getStringExtra(extraName));

     switchToFragment(DashboardContainerFragment.class.getName(), args, false, false,
             mInitialTitleResId, mInitialTitle, false);
 }

把源码中的mDisplayHomeAsUpEnabled = false;修改为mDisplayHomeAsUpEnabled = true;即可实现。

2.frameworks\base\packages\SettingsLib\src\com\android\settingslib\drawer\SettingsDrawerActivity.java

mUserManager = UserManager.get(this);
    if (DEBUG_TIMING) Log.d(TAG, "onCreate took " + (System.currentTimeMillis() - startTime)
            + " ms");

	后面加上如下代码:
	toolbar.setNavigationOnClickListener(new View.OnClickListener() {
	        @Override
	        public void onClick(View v) {
	            finish();;            
	        }
	});

重新编译系统。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值