做项目时遇到过这个问题,我想要为Android 的每个option menu加图标,然后改变每个menu item的排列方式,默认的menu item 排列方式是竖着排成一列,类似于Android组件ListView 中内容的排列方式,但我想要的效果是每个menu item排成一个方阵,类似于GridView的那种排列,在网络上找了半天,找到了一个有些帮助的文章,如下:
http://www.cnblogs.com/salam/archive/2011/04/04/2005329.html
我新建一个工程,照着做,发现默认样式还是改不了,仍然显示不了menu item的图标,仍然排成一列,用自定义的方法倒是可以改变menu的样式,但那样做有点麻烦,我把作者例子下载下来一跑,结果发现他确实改变了menu的默认样式,然后我知道了,我肯定忽略了一些地方,我几乎比对了我自己的工程和作者的工程的每个文件,然后把它们都改成一样的,结果发现还是没能改变menu的外观。
最后我注意到,为什么我自己新建一个工程,里面Activity的背景是白色的,而作者的那些Activity背景是黑色的,于是我修改了AndroidManifest.xml 文件
把如下代码:
<application
android:name="MyApp"
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
改为
<application
android:name="MyApp"
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name">
再次运行我的工程,结果背景变黑色了,每个menu item 的图标也可以显示出来了,但是它们依然排成一列
我意识到我之前忽略的地方正是AndroidManifest.xml 文件的不同
我又再次比对两个文件中的不同,找到了这一处:
我的
<uses-sdk android:minSdkVersion="8"
android:targetSdkVersion="17"/>
别人的
<uses-sdk android:minSdkVersion="3" />
然后我也改成
<uses-sdk android:minSdkVersion="8" />
重新运行我的工程,结果每个menu item就排成方阵了