1.找到虚拟按键
vendor/mediatek/proprietary/packages/apps/SystemUI/res/values/config.xml中定义了初始的虚拟按键位置:(若不需要控制可以在
overlay中直接进行修改)
<string name="config_navBarLayout" translatable="false">left[.5W],back[1WC];home;recent[1WC],right[.5W]</string>
2.找到加载虚拟按键的方法
vendor/mediatek/proprietary/packages/apps/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarInflaterView.java中的
getDefaultLayout方法中return mContext.getString(R.string.config_navBarLayout);
3.需要进行控制思路很简单只需要在getDefaultLayout方法中加个判断语句进行控制即可,麻烦的是在设置中加入控制选项并更新SystemUI
3.1 在设置中的显示设置加控制虚拟按键交换的选项并添加控制功能
3.1.1 在vendor/mediatek/proprietary/packages/apps/MtkSettings/res/values/arrays.xml中添加
+ <string-array name="nav_back_key_entries">
+ <item>Back key to the left </item>
+ <item>Back key to the right</item>
+ </string-array>
+
+ <string-array name="nav_back_key_values" translatable="false">
+ <item>1</item>
+ <item>2</item>
+ </string-array>
3.1.2 在vendor/mediatek/proprietary/packages/apps/MtkSettings/res/values/strings.xml中添加
+ <string name="nav_bar_key_right_title">Set back key</string>
3.

本文介绍了如何在Android O中更改虚拟按键的位置。首先,关键在于修改`config_navBarLayout`配置,其次,需要在`NavigationBarInflaterView`的`getDefaultLayout`方法中添加条件判断以实现动态布局。最后,要在系统设置的显示设置中增加控制虚拟按键交换功能的选项。
最低0.47元/天 解锁文章
1626

被折叠的 条评论
为什么被折叠?



