解析Android开发优化之:对界面UI的优化详解(二)

 更新时间:2013年05月09日 09:29:06   作者:  
在一个应用程序中,一般都会存在多个Activity,每个Activity对应着一个UI布局文件。一般来说,为了保持不同窗口之间的风格统一,在这些UI布局文件中,几乎肯定会用到很多相同的布局

    如果我们在每个xml文件中都把相同的布局都重写一遍,一个是代码冗余,可读性很差;另一个是修改起来比较麻烦,对后期的修改和维护非常不利。所以,一般情况下,我们需要把相同布局的代码单独写成一个模块,然后在用到的时候,可以通过<include /> 标签来重用layout的代码。

常见的,有的应用在最上方会有一个标题栏。类似下图所示。

图 标题栏的示例

 

    如果项目中大部分Activity的布局都包含这样的标题栏,就可以把标题栏的布局单独写成一个xml文件。

复制代码 代码如下:

<RelativeLayout

    android:layout_width="fill_parent"

    android:layout_height="wrap_content"

    android:gravity="center"

    android:background="@drawable/navigator_bar_bg"

    xmlns:android="http://schemas.android.com/apk/res/android">

    <TextView

        android:id="@android:id/title"

        android:layout_width="fill_parent"

        android:layout_height="wrap_content"

        android:layout_centerVertical="true"

        android:gravity="center"

        android:hint="title"

        android:textAppearance="?android:attr/textAppearanceMedium" />

    <ImageView

        android:id="@android:id/closeButton"

        android:layout_width="wrap_content"

        android:layout_height="wrap_content"

        android:layout_alignParentRight="true"

        android:src="@drawable/close" />

</RelativeLayout>


    我们将上面的xml文件命名为“navigator_bar.xml”,其它需要标题栏的Activity的xml布局文件就可以直接引用此文件了。
复制代码 代码如下:

<include layout="@layout/navigator_bar" />

复制代码 代码如下:

经验分享:

一般情况下,在项目的初期就能够大致确定整体UI的风格。所以早期的时候就可以做一些规划,将通用的模块先写出来。

下面是可能可以抽出的共用的布局:

1)背景。有的应用在不同的界面里会用到统一的背景。后期可能会经常修改默认背景,所以可以将背景做成一个通用模块。

2)头部的标题栏。如果应用有统一的头部标题栏,就可以抽取出来。

3)底部的导航栏。如果应用有导航栏,而且大部分的Activity的底部导航栏是相同的,就可以将导航栏写成一个通用模块。

4)ListView。大部分应用都会用到ListView展示多条数据。项目后期可能会经常调整ListView的风格,所以将ListView作为一个通用的模块比较好。

相关文章

  • Android事件分发机制示例分析

    Android事件分发机制示例分析

    在说事件分发之前,我们先想一个问题,在APP中我们点击一个View的时候,事件是如何传递到这个View的呢?其实这就是我理解的事件分发机制。即当手指点击屏幕时,事件传递到具体View的过程
    2022-08-08
  • Android提高之手游转电视游戏的模拟操控

    Android提高之手游转电视游戏的模拟操控

    这篇文章主要介绍了Android手游转电视游戏的模拟操控方法,是非常具有实用价值的功能,需要的朋友可以参考下
    2014-08-08
  • 解决Android SurfaceView绘制触摸轨迹闪烁问题的方法

    解决Android SurfaceView绘制触摸轨迹闪烁问题的方法

    这篇文章主要为大家详细介绍了解决Android SurfaceView绘制触摸轨迹闪烁问题的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-03-03
  • Android开发中Dialog半透明背景消失

    Android开发中Dialog半透明背景消失

    这篇文章主要介绍了Android开发中Dialog半透明背景消失的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2016-11-11
  • Android开发中R.java文件丢失或无法更新的解决方法

    Android开发中R.java文件丢失或无法更新的解决方法

    这篇文章主要介绍了Android开发中R.java文件丢失或无法更新的解决方法,较为详细的列举分析了出现R.java文件丢失或无法更新的常见原因及相应的解决方法,需要的朋友可以参考下
    2016-02-02
  • Android编程实现输入框动态自动提示功能

    Android编程实现输入框动态自动提示功能

    这篇文章主要介绍了Android编程实现输入框动态自动提示功能,结合实例形式分析了AutoCompleteTextView相关使用技巧,需要的朋友可以参考下
    2017-03-03
  • Android滚轮选择时间控件使用详解

    Android滚轮选择时间控件使用详解

    这篇文章主要为大家详细介绍了Android滚轮选择时间控件使用,滚轮选择选择数值、选择字符串,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-12-12
  • Android自定义控件ListView下拉刷新的代码

    Android自定义控件ListView下拉刷新的代码

    今天小编就为大家分享一篇关于Android自定义控件ListView下拉刷新的代码,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2018-12-12
  • Android获取手机通话记录的方法

    Android获取手机通话记录的方法

    这篇文章主要为大家详细介绍了Android获取手机通话记录的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-10-10
  • Android插件化之资源动态加载

    Android插件化之资源动态加载

    这篇文章主要介绍了Android插件化之资源动态加载的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-12-12

最新评论