如何查看Android任意控件实际支持的完整样式属性列表?
如何查看Android平台任意控件实际支持的完整样式属性列表?
针对你遇到的ActionMenuView属性困惑,我完全懂这种官方文档信息不全的烦躁——毕竟很多控件会继承父类的属性,官方文档往往只列自己新增的。给你几个靠谱的方法:
- 顺着继承链找属性:ActionMenuView继承自ViewGroup,ViewGroup又继承自View,所以它天然支持View和ViewGroup的所有通用属性,比如你提到的
android:gravity其实是ViewGroup的标准属性。至于设置后没效果,大概率是ActionMenuView内部的布局逻辑覆盖了这个属性——它的子菜单项是由控件自身管理的,外层gravity可能影响不到内部元素。 - 直接扒源码:去看ActionMenuView的源码,搜它处理
AttributeSet的逻辑,或者找有没有重写setGravity这类方法。如果源码里没有对某个属性做特殊拦截,那它就会继承父类的处理逻辑。 - 用Android Studio的智能提示:这是最省心的办法——在XML布局里选中ActionMenuView,输入
android:或者app:,AS会自动弹出所有该控件支持的属性列表,包括继承来的和自定义的。你也可以打开右侧的属性面板,里面会分类展示所有可用属性。 - 查系统attrs.xml文件:在你的Android SDK安装目录下,找到
platforms/android-[API版本]/data/res/values/attrs.xml,里面定义了所有系统控件的属性。另外,support库的attrs文件也能找到ActionMenuView的自定义属性。
至于你说的android:gravity没生效的问题,试试app:itemGravity这个自定义属性(如果你的support版本支持的话),或者通过代码获取ActionMenuView的内部子View,手动设置它们的对齐方式。
内容的提问来源于stack exchange,提问作者Dmitry
相关产品推荐
相关产品推荐

