发现平板横屏的时候,Settings主界面的左侧界面显示不完整。
Settings.java继承的是PreferenceActivity,通过查看PreferenceActivity的源码,所在路径为:frameworks/base/core/java/android/preference/PreferenceActivity.java
发现它所加载的布局文件为:preference_list_content.xml,
所在路径为:frameworks/base/core/java/res/res/layout/preference_list_content.xml
左侧布局:
右侧布局:
所以要修改左右测的显示风格,可以对这个布局文件进行调整:
上面的ListView即为显示在settings_headers.xml中定义的每一项。
也可以在继承PreferenceActivity的类中通过这个布局中的id,得到相应的布局,进行修改。
如:在settings.java中的onCreate方法中,获得左侧的view
View view = findViewById(com.android.internal.R.id.headers);
view.setBackgroundColor(Color.GREEN);
即可将左侧背景设置为绿色。
同样可以获得listView,修改其选中时的颜色等等。
如我不想让listView距离它的父布局,发现上面的布局中有style,在style.xml中发现设置了距离左右的距离,这也就是导致我最开始所说的横屏显示不完整的问题,我将ListView的这个风格去掉以后,就解决了问题。当然也可以在Settings.java中得到这个ListView ,对其布局进行修改。
不过要是修改的是framework下的这个文件,那么将对系统中所有继承了PreferenceActivity的类都有一定的影响。