大家有哪些布局文件命名约定?
我在网上没有找到什么,但考虑使用以下约定。
大家觉得怎么样?
- activity_*
- dialog_*
- list_item_*
这是我到目前为止所涉及的全部内容。
另外,活动的命名与其布局有什么关系呢?例如:
-> res
-> layout
-> activity_about_us.xml
-> src
-> activity
-> AboutUs.java
大家有哪些布局文件命名约定?
我在网上没有找到什么,但考虑使用以下约定。
大家觉得怎么样?
- activity_*
- dialog_*
- list_item_*
这是我到目前为止所涉及的全部内容。
另外,活动的命名与其布局有什么关系呢?例如:
-> res
-> layout
-> activity_about_us.xml
-> src
-> activity
-> AboutUs.java
奇怪的是,尝试在谷歌上搜索这个问题只会得到这个页面作为有意义的结果... 过去半年中,我使用了类似于你的命名约定,但前缀更短。例如: 用于显示“关于我们”屏幕的活动:
类名: ActAboutUs
。给类加前缀可能有些多余,但它清楚地区分了活动类和其他类。最初,我使用单独的目录存放所有活动(类似于你的方法),但过了一段时间后,我意识到对于较大的应用程序来说,按功能组织目录可能比按超类(即Activity)更好。当我在设置(Settings)方面工作时,单独一个目录/src/settings/
更容易让我操作。这样,我需要的所有java文件都在同一个目录下,所以我不必四处找文件:
/src/settings/ActSettingsGlobal.java
/src/settings/ActSettingsNet.java
/src/settings/Settings.java
/src/settings/SettingsDBAdapter.java
/src/settings/etc...
这种方法还有助于将工作分配给不同的开发人员,即每个人都在自己的目录中独立地工作,因此彼此之间不会互相干扰 :-).
有些人喜欢使用后缀,但我发现它们不太有用。前缀有助于按字母顺序对事物进行分组,就像上面的例子一样:Act*
前缀被首先排序,因此所有活动都方便地位于顶部。
我甚至考虑使用更易读的Act_
作为前缀,尽管它与Java命名约定冲突...
布局文件名:act_about_us.xml
。在res/layout/
中,我们没有子目录的“奢侈品”,这非常不幸,因此唯一的分组方式是使用适当的前缀,例如act_
、dlg_
等...
字符串ID:<string name="act_about_us_dlg_help1_title" ...
string.xml
是我们最常遇到具有重复name
的问题的地方。如果不使用类似activity_element_item
的命名约定,则很容易创建重复项。它会增加很多额外的输入,但可以避免日后的混乱。
对于全局(应用程序范围内)字符串,我们使用前缀"global_"
,例如global_btn_ok
、global_msg_no_inet_conn
。通常,我们会让一个人负责所有的global_
字符串,因此如果有人需要新的字符串或更改,他需要与该人同步以避免创建混乱。
(现在我意识到activity__element__item
(两个下划线)比activity_element_item
更清晰易读)
总的来说,我仍然觉得我的方法存在问题,因为我无法相信Google开发人员在处理文件、ID、名称等方面创建了如此不方便的框架...
我认为应该遵循以下命名规则:
对于活动(Activity)
如果我们的活动名称是:
DisplayListActivity
display_list_activity.xml
对于列表项,我们可以在列表项布局名称中包含类别。
country_list_item.xml
delete_country_dialog.xml
当查找一组布局时,我通常会按照以下方式进行操作:始终在类名前添加前缀,并跟随任何子布局。例如:
类名:AboutActivity.java
布局名:about_activity.xml
子布局名:about_activity_menu.xml
子子布局名:about_activity_menu_item.xml
您的活动始终位于每个分组的顶部,查找非活动变得更加轻松。有人知道为什么子文件夹还没有成为事实吗?我认为这是出于后端的效率和简单性,但我想它不会损害太多。
这是一篇很好的阅读材料https://jeroenmols.com/blog/2016/03/07/resourcenaming/
基本上,你需要遵循WHAT WHERE DESCRIPTION SIZE
例如,布局文件
字符串
drawable - all_infoicon_large:通用信息图标的大尺寸版本 - all_infoicon_24dp:通用信息图标的24dp版本
对我而言,命名应该满足两个重要的要求:
对于第二个要求,大多数人将“相关”定义为类型相关,这会给你类似于以下内容:
activity_login
activity_movie_list
activity_user_list
activity_settings
fragment_movie_list
fragment_user_list
item_movie
item_user
login_activity
movie_list_activity
movie_list_fragment
movie_list_item
user_list_activity
user_list_fragment
user_list_item
settings_activity
源文件遵循xml命名规则,但使用驼峰式命名法,因此会存在这样的情况
LoginActivity
MovieListActivity
MovieFragment
etc.