2011-04-07 174 views
37

人们想出了什么样的布局文件命名约定。布局文件命名约定?

我还没有找到任何东西,但想到使用以下约定。

大家怎么想?

- activity_* 
- dialog_* 
- list_item_* 

这就是我迄今为止所做的一切。

另外,根据其布局命名活动呢?例如:

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

回答

26

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

类别名称ActAboutUs。前缀类有点矫枉过正,但它清楚地区分了活动类和其他类。最初,我使用单独的目录进行所有活动(类似于您的方法),但过了一段时间后,我意识到对于更大的应用程序而言,最好按功能进行分组而不是超级分组(即Activity)。当我使用设置时,我在单个目录中工作比较容易,例如/src/settings/。这样一来,我需要所有的Java文件都在一个单一的目录,所以我不必四处流浪:

/src/settings/ActSettingsGlobal.java 
/src/settings/ActSettingsNet.java 
/src/settings/Settings.java 
/src/settings/SettingsDBAdapter.java 
/src/settings/etc... 

这种方法还有助于分割不同的开发人员之间的工作,即每个人在自己的工作dir在单独的功能,所以没有踩在彼此的脚上:-)。

有些人preffer后缀,但我发现他们没那么有用。前缀有助于按照上面的例子按字母顺序对事物进行分组:Act*前缀首先排序,因此所有活动都方便地位于顶部。

我甚至考虑使用Act_作为前缀哪个更可读,虽然它与Java命名约定冲突......

布局文件名act_about_us.xml。在res/layout/我们没有子目录的“奢侈品”,这是很不幸的这么一群事物的唯一方式是使用适当的前缀像act_dlg_等..

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

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

总之,我仍然无法摆脱的感觉,有什么毛病我的方法,因为我不能相信谷歌开发人员在处理文件,ID,名称等时创建了这样一个不便的框架......

+6

我一直在寻找一些指导方针来跟踪我自己,因为你发现我发布了这个问题。 – Salsero69 2011-06-13 16:21:53

+0

您是否找到更好的解决方案? – Shreyans 2016-03-14 22:05:00

9

我认为以下命名约定应遵循

的活动

如果我们的活动名称是

DisplayListActivity 

那么我们layoutname应该

display_list_activity.xml 

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

country_list_item.xml 

和dialogboxes他们的行动可以包括

delete_country_dialog.xml 
5

当寻找一组布局时,我倾向于在他们上面工作,我发现总是预先输入类名并跟随任何子布局是有效的。比如:

类名称:AboutActivity.java
布局名称:about_activity.xml
子布局名称:about_activity_menu.xml
副子布局名称:about_activity_menu_item.xml

您的活动将总是处于每个分组的顶部,并且非活动的搜索变得更少·霍尔。任何人都知道为什么子文件夹不是什么东西了?我期待后端的效率和简单性,但我想它不会太伤人。

+0

这并不是AndroidStudio默认的方式 – Nacho 2016-03-01 03:59:08

1

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

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

这看起来似乎很熟悉,因为这也是在Android Studio中创建新项目时命名的activity/layout文件(MainActivity - >activity_main.xml)。

0

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

基本上,你跟着WHAT WHERE DESCRIPTION SIZE

例如,布局文件

  • activity_main:在MainActivity
  • fragment_articledetail的内容视图:查看Articl eDetailFragment

  • articledetail_title:ArticleDetailFragment
  • feedback_explanation的标题:在FeedbackFragment反馈解释

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