布局文件命名约定?

时间:2011-04-07 13:43:05

标签: android layout naming-conventions android-layout

人们提出了哪些布局文件命名约定。

我没有在网上找到任何东西,但考虑使用以下约定。

每个人都在想什么?

 - activity_* 
 - dialog_*
 - list_item_*

到目前为止,这就是我所有的工作。

此外,针对其布局命名活动怎么样?例如:

-> res
    -> layout
        -> activity_about_us.xml
-> src
    -> activity
        -> AboutUs.java

6 个答案:

答案 0 :(得分:28)

奇怪的是,尝试谷歌这个问题只会使这个页面成为有意义的结果...... 在过去的半年里,我使用与您类似的命名约定,但前缀较短。例如: 对于显示“关于我们”屏幕的活动:

班级名称ActAboutUs。前缀类有点矫枉过正,但它明确区分了活动类和其他类。最初我使用单独的目录进行所有活动(类似于你的方法),但过了一段时间后我意识到,对于更大的应用程序,可能最好按功能分组目录而不是超类(即活动)。当我处理“设置”时,我更容易在单个目录中工作,例如/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_等...... / p>

字符串ID <string name="act_about_us_dlg_help1_title" ... string.xml是我们遇到重复name个问题最多的地方。如果不使用activity_element_item之类的命名约定,则很容易创建重复项。它增加了许多额外的输入,但它可以避免以后的混乱。 对于全局(应用程序范围)字符串,我们使用前缀"global_",例如global_btn_okglobal_msg_no_inet_conn。通常我们会让一个人对所有global_字符串负责,所以如果有人需要新的字符串或更改,他需要与他同步以避免造成混乱。

(现在我意识到activity__element__item(两个下划线)比activity_element_item更清晰可读

总而言之,我仍然无法摆脱我的方法存在问题的感觉,因为我无法相信谷歌开发人员在处理文件,ID,名称时会创建这样一个不方便的框架,等...

答案 1 :(得分:9)

我认为遵循命名惯例应遵循

用于活动

如果我们的活动名称是

DisplayListActivity

然后我们的布局名称应为

display_list_activity.xml

对于列表项,我们可以在列表项布局名称中包含类别

country_list_item.xml

对于对话框,可以包含其操作

delete_country_dialog.xml

答案 2 :(得分:6)

在寻找一组布局时,我倾向于使用它们,我发现总是在前面添加类名并跟进任何子布局是有效的。对于实例:

班级名称: AboutActivity.java
布局名称: about_activity.xml
子布局名称: about_activity_menu.xml
子子布局名称: about_activity_menu_item.xml

您的活动将始终位于每个分组的顶部,并且寻找非活动变得不那么繁琐。任何人都知道为什么子文件夹不是一件事吗?我期望后端的效率和简单性,但我想它不会太痛苦。

答案 3 :(得分:3)

这是一本很好的阅读https://jeroenmols.com/blog/2016/03/07/resourcenaming/

基本上,您关注WHAT WHERE DESCRIPTION SIZE

例如,布局文件

  • activity_main:MainActivity的内容视图
  • fragment_articledetail:ArticleDetailFragment的视图

的字符串

  • articledetail_title:ArticleDetailFragment的标题
  • feedback_explanation:FeedbackFragment中的反馈说明

可绘制   - all_infoicon_large:通用信息图标的大版本   - all_infoicon_24dp:24dp版本的通用信息图标

答案 4 :(得分:1)

布局文件名的第一部分应始终是相应类的类型。 例如,如果我们有一个类MainActivity(在这种情况下类型为Activity),则应调用相应的布局文件activity_main.xml

这意味着我们可以说我们有一个名为WarningDialog的对话框,相应的布局文件应该被称为dialog_warning.xml,同样适用于片段等。

这可能看起来很熟悉,因为这也是在Android Studio中创建新项目时activity/layout文件的命名方式(MainActivity - &gt; activity_main.xml)。

答案 5 :(得分:0)

对我来说,命名应解决两个重要要求:

  1. 它应该为您提供有关文件内容和类型的提示(例如activity_login / login_activity或movie_list_item / list_item_movie)
  2. 应将相关项目组合在一起,以最大程度地减少来回跳跃

对于第二个要求,大多数人将“相关”定义为相关类型,从而为您提供以下信息:

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命名,但是在CamelCase中,因此会有

LoginActivity
MovieListActivity
MovieFragment 
etc.