十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
Android在xml文件中可使用include包含其他定义好的布局, 可以将多处用到的布局单独出来,然后用include包含进来,这种包含方法相当于把原来布局的一部分代码独立出来,供大家共同使用,也就相当于面向对向中的类的概念差不多。下面我们逐步讲解include的作用。
我们提供的服务有:做网站、网站制作、微信公众号开发、网站优化、网站认证、尖草坪ssl等。为1000+企事业单位解决了网站和推广的问题。提供周到的售前咨询和贴心的售后服务,是有科学管理、有技术的尖草坪网站制作公司
先看下我们要实现的整体界面:
一、未使用Include时
通常情况下,我们直接就能写出布局代码,下面是所使用的XML代码:
[html] view plaincopy
?xml version="1.0" encoding="utf-8"?
LinearLayout xmlns:android=""
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
!-- 第一部分 --
TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="#ff0000"
android:text="第一个BTN" /
Button
android:id="@+id/mybutton"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text=" One Button " /
!-- 第二部分 --
TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="#00ff00"
android:text="第二个BTN" /
Button
android:id="@+id/mybutton"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text=" Second Button " /
!-- 最后的按钮 --
Button
android:id="@+id/another"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text=" Another Button " /
/LinearLayout
这段代码理解起来一点难度没有,就是几个TextView和几个Button,下面我们用include把这段代码给分割成几个文件,并完成相同的效果;
二、使用Include时
1、先将上面代码标记有“第一部分”的,代码段分离成一个文件(sublayout1.xml);
[html] view plaincopy
?xml version="1.0" encoding="utf-8"?
LinearLayout xmlns:android=""
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="#505050"
android:orientation="vertical"
TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="#ff0000"
android:text="第一个BTN" /
Button
android:id="@+id/mybutton"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text=" One Button " /
/LinearLayout
2、再将标记有“第二部分”的代码段,分离成第二个文件(sublayout2.xml):
[html] view plaincopy
?xml version="1.0" encoding="utf-8"?
LinearLayout xmlns:android=""
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="#00ff00"
android:text="第二个BTN" /
Button
android:id="@+id/mybutton"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text=" Second Button " /
/LinearLayout
3、主文件中使用include,将上面两个文件包含进去(activity_main.xml);
[html] view plaincopy
?xml version="1.0" encoding="utf-8"?
LinearLayout xmlns:android=""
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
include
android:id="@+id/main1"
layout="@layout/sublayout1" /
include
android:id="@+id/main2"
layout="@layout/sublayout2" /
Button
android:id="@+id/another"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text=" Another Button " /
/LinearLayout
这样就实现了相同的效果,这里可以看到,include并没有其它的功能,只是把一个XML布局引入进来当做自己的布局,跟直接把引用的这段代码写在include处的效果是一样的。
1.使用代码编写一个底部选项卡的布局
2.整个页面的容器布局(包含Fargment,分割线,选项卡)
private void initView(Context context) {
setBackgroundColor(0xfff6f6f6);
FrameLayout frameLayout=new FrameLayout(context);//选项界面容器
frameLayout.setId(FL_ID);
View lineView=new View(context);//分割线
lineView.setId(LINE_ID);
RelativeLayout.LayoutParams rlParams=new RelativeLayout.LayoutParams(LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT);
rlParams.addRule(RelativeLayout.ALIGN_PARENT_TOP);
rlParams.addRule(RelativeLayout.ABOVE , LINE_ID);
lineView.setBackgroundColor(lineColor);
RelativeLayout.LayoutParams rlParams2=new RelativeLayout.LayoutParams(LayoutParams.MATCH_PARENT, DensityUtils.dip2px(context, 1));
rlParams2.addRule(RelativeLayout.ABOVE , TAB_ID);
addView(frameLayout, rlParams);//选项界面容器
addView(lineView,rlParams2);//分割线
//选项卡容器
linearLayout=new LinearLayout(context);
linearLayout.setBackgroundColor(tabBgColor);
linearLayout.setOrientation(LinearLayout.HORIZONTAL);
linearLayout.setGravity(Gravity.CENTER_VERTICAL);
linearLayout.setId(TAB_ID);
tabNum=tabIcos.length;
for (int i = 0; i tabNum; i++) {
View view = createIndicator(tabIcos[i], tabtxts[i], tabItemTvColor, "itemTag"+i, "icoTag" + i, "txtTag" + i);
view.setOnClickListener(OnClick);
if(i== nowTabIndex){//初始化选项卡
changeTab(view, i);
}
linearLay
android 使两个按钮水平排列的方法是使用lineLayout线性布局,如下代码:
?xml version="1.0" encoding="utf-8"?
LinearLayout xmlns:android=""
android:layout_width="fill_parent"
android:layout_height="match_parent"
android:background="@color/background"
android:orientation="vertical"
View
android:layout_width="wrap_content"
android:layout_height="1.2px"
android:layout_marginBottom="7dp"
android:background="@color/white" /
LinearLayout
android:layout_width="fill_parent"
android:layout_height="79dp"
android:layout_weight="2"
android:orientation="horizontal"
android:layout_margin="10dp"
Button
android:id="@+id/bt1"
android:layout_width="fill_parent"
android:layout_height="26dp"
android:background="@drawable/shape"
android:layout_weight="1"
android:text="确认对冲"
android:textColor="@color/white"
android:textSize="15dp" /
Button
android:layout_width="fill_parent"
android:layout_height="26dp"
android:background="@drawable/shapeyuanjiao"
android:layout_weight="1"
android:text="取消"
android:textColor="@color/white"
android:textSize="15dp" /
/LinearLayout
/LinearLayout
运行结果如下: