android - 我应该将所有 Android View 属性放入样式中吗?

标签 android

我看到一些 Android 开发者提倡这种形式的声明式布局:

<TextView style="@style/my_textview_style" />

即几乎所有属性(包括 ID)都进入样式定义。它当然可以缩短布局文件,但这是否太过分了?

您建议在样式定义中加入什么,在布局中应该保留什么,为什么?

我今年开始做 Android 开发,但之前有开发经验。像这样的问题非常重要,我们使用工具的“方式”,习惯,才能更有效率。感谢您分享您对什么对您有用的看法,以提高清晰度、效率、可维护性和应用可靠性。

最佳答案

我一直在思考这个问题,在处理多种设备尺寸和密度时,它变得更加切题。

在样式中放入过多信息会限制它们的使用,尤其是在处理横向和纵向布局时。例如,横向布局实际上可能在构图上完全不同,但需要非常相似的样式。

在这些情况下,使用 .例如,修改样式差异的符号。

<MyPage>
<MyPage.portrait>
<MyPage.landscape>

有关上述创建样式方法的信息,请参见下文。 http://developer.android.com/guide/topics/ui/themes.html

MyPage 定义布局的通用属性,然后您可以在纵向和横向扩展中覆盖这些值。

我..e 你可能在横向比纵向有更多的左右填充。

我发现的问题是主题和样式 xml 文件变得很大,特别是如果像我一样你有很多 Activity ,并且如果你解决很多创造性的变化,那么你最终可能会得到很多困惑的定义。

此时您必须盘点、整理和重构。

我唯一的建议是您要提前做好计划。定义一个适合您的项目的命名系统,将其写下来并坚持使用。

可能的风格命名约定

<section>_<componentName>_<componentType>_<orientation>

home_leftPanel_btn_horizontal
home_leftPanel_listview
home_leftPanel_listview_horizontal

应该采用类似的主题方法。

我仍在解决这个问题,因此无法提供更完整的示例。

关于android - 我应该将所有 Android View 属性放入样式中吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4319035/

相关文章:

java - sleep VS AlarmManager.set AND AlarmManager.setRepeating VS Handler

android - 为什么这个方法调用不能转换成lambda?

Android:显示键盘时仅在编辑文本中显示光标

android - 不断地为 Loading... textview 设置动画

java - 如何在 Android Studio 中创建类文件

java - 更改 Firebase 数据结构后出现 UnrecognizedPropertyException

android - 手指离开按钮时的事件

javascript - Highcharts Legend Selection 在 Android WebView 中双重触发

android - 改变 Horizo​​ntalScrollView 的灯光颜色 - OverScrollMode

android - 在 Android 上使用 librtmp 编译 FFMPEG 时出现 "Undefined Reference"