在Android的官方文档中UI的优化主要涉及<include />、<merge />、<ViewStub />三类标签,本文主要讲解<include />的使用,其他两种见后文。

<merge />:http://blog.csdn.net/u012721519/article/details/51229291

<ViewStub />:http://blog.csdn.net/u012721519/article/details/51231469

在Android的开发工程中,一个良好的项目开发,不仅需要有良好的代码编写习惯,当然优化也必不可少,其中UI的优化也是其中的重要一部分,避免代码的冗余,是一个良好优秀的开发习惯和后期维护必不可少的内容之一。

<include />:

能够重用布局文件,把相同的代码写成一个单独的模块,在其他地方复用,减少代码的冗余。

注意:

可以单独使用layout属性,在<include />里定义ID属性,但在layout也定义了相关ID属性,则layout属性将会覆盖<include />属性。

也可在一个UI设计里面复用同一个<include />模块,但需注意设置LinerLayout相关方法,如下:

        ll1 = (LinearLayout)findViewById(R.id.in1);        tv1 = (TextView)ll1.findViewById(R.id.tv);

通过LinearLayout方法寻找id,否则会出现id复用的情况。

详细代码如下:

include.xml 复用布局文件

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:orientation="vertical"><TextView    android:id="@+id/tv"    android:layout_width="fill_parent"    android:layout_height="wrap_content"    android:textColor="#FF0000"    android:text="aa"/></LinearLayout>

activity_main.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"    android:layout_height="match_parent"    tools:context=".MainActivity"    android:orientation="vertical">    <include        android:id="@+id/in1"        android:layout_width="100dp"        android:layout_height="wrap_content"        layout="@layout/include" />    <include        android:id="@+id/in2"        android:layout_width="fill_parent"        android:layout_height="wrap_content"        layout="@layout/include"/></LinearLayout>

复用了两次<include />,本人主要是用于测试使用。


MainActivity.java

package example.com.includetest;import android.graphics.Color;import android.os.Bundle;import android.support.v7.app.AppCompatActivity;import android.widget.LinearLayout;import android.widget.TextView;public class MainActivity extends AppCompatActivity {    private TextView tv1,tv2;    private LinearLayout ll1 = null;    private LinearLayout ll2 = null;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        initUI();        initData();    }    private void initData() {        tv1.setText("include 事件一");        tv2.setText("include 事件二");        tv2.setTextColor(Color.BLUE);    }    private void initUI() {        ll2 = (LinearLayout)findViewById(R.id.in2);        ll1 = (LinearLayout)findViewById(R.id.in1);        tv1 = (TextView)ll1.findViewById(R.id.tv);        tv2 = (TextView)ll2.findViewById(R.id.tv);    }}


initData方法主要是用于测试,证明两个复用的<include />均可使用

运行效果如下:


Android UI优化之include标签的使用_第1张图片



源码下载地址:http://download.csdn.net/detail/u012721519/9500597

Good luck!

Write by Jimmy.li








更多相关文章

  1. Android:android.git.kernel.org 无法访问时下载源代码的解决方法
  2. 后台动态添加布局文件、控件与动态设置属性2
  3. TableLayout 属性的设置
  4. Android中使用AlarmManager需注意设置进程属性
  5. [Tools]Android Studio代码提示功能--Ctrl+Alt+Space(空格键)
  6. Android Layout 布局 && Android自带样式(theme)&& CheckBox样例 &
  7. Android 7.1.1中SystemProperties 设置属性无限问题分析
  8. Android学习心得(14) --- Android代码混淆(2)
  9. android 自定义xml属性

随机推荐

  1. android 处理图片工具
  2. android Volley 使用
  3. 图标集合-系统默认
  4. android语音识别demo
  5. Android(安卓)dp转px
  6. android SwipeRefreshLayout 下拉刷新控
  7. 如何去掉listview黑边问题
  8. Android(安卓)Sharepreferrence 保存数据
  9. android多点触摸demo
  10. API 23 view.View——属性分析