将Android系统升级到4.1,发现右下角通知栏里面的滚动条没有了。如果里面栏目少的话,还可以接受,但是现在栏目多了,添加了蓝牙,GPS等,以至于上面的title直接顶到界面的最上面去了。这是无法接受的。
原来的4.0是有滚动条的,不确定是4.1里面去掉了,还是在同步代码的时候出了问题。总之,要把滚动条加上。
对于上层,特别是界面的东西一直以来都很犯怵,这次也是硬着头皮上。网上搜了一下,只需要修改某个xml资源文件,把<ScrollView>套在最外面就行了。但是首先得找到哪个xml。
首先,状态通知栏是属于System bar的,不属于Settings. 因此代码在frameworks/base/packages/SystemUI下面。
4.1里面的xml组织和命名和以前有些不同。不能按相同的文件名找。通知栏中有许多栏目,如“Wi-Fi”, "自动旋转屏幕", “通知”等。就搜索这些字串。发现资源文件为
packages/SystemUI/res/layout/system_bar_settings_view.xml
打开后发现果然没有<ScrollView>,于是将4.0中的头给它套上,具体改动如下
diff --git a/packages/SystemUI/res/layout/system_bar_settings_view.xml b/packages/SystemUI/res/layout/system_bar_settings_view.xml
index c03dd99..181c026 100644
--- a/packages/SystemUI/res/layout/system_bar_settings_view.xml
+++ b/packages/SystemUI/res/layout/system_bar_settings_view.xml
@@ -15,6 +15,11 @@
* limitations under the License.
-->
+<ScrollView
+xmlns:android="http://schemas.android.com/apk/res/android"
+android:layout_height="380px"
+android:layout_width="match_parent">
+
<com.android.systemui.statusbar.tablet.SettingsView
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:systemui="http://schemas.android.com/apk/res/com.android.systemui"
@@ -178,3 +183,4 @@
</com.android.systemui.statusbar.tablet.SettingsView>
+</ScrollView>
重新编译为升级包(SystemUI单独编译为apk导入进去不起作用),发现OK 了。