zoukankan      html  css  js  c++  java
  • Android的四大组件学习

    一、Linearlayout  :  线性布局

      1. android:orientation="vertical"     //控件的方向控制,vertical : 垂直布局 ,  horizontal : 水平布局

           2. android:gravity="right"               //对控件或者文字进行对齐方式

       (1). 放在Linearlayout中,控制的是布局中的控件

       (2). 放在控件中,控制的是空间中的文字

      3.android:layout_gravity="right"   //对控件操作才有效,相对于包含这个控件的布局而言

      4.android:layout_weight="3"        //对控件进行操作才有效,它是对整个视图进行比例进行分割

      5.所有layout的类都是ViewGroup的子类

      6.我们避免不了需要使用到LayoutInflater类中的inflate()方法。对于LayoutInflater对象的获取,有三种方式:

       LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);// 第一种方式

               LayoutInflater inflater = LayoutInflater.from(context);// 第二种方式

               LayoutInflater inflater = activity.getLayoutInflater();// 第三种方式
      6. View view = inflater.inflate(R.layout.linearlayout,root:null,attachToRoot false);       //参数进行讲解:

        (1). 三个参数的讲解:当root有参数时候看第三个参数是否关联     

        LinearLayout ll = (LinearLayout) findViewById(R.id.ll);
        LayoutInflater inflater = MainActivity.this.getLayoutInflater();
        View view = inflater.inflate(R.layout.linearlayout,ll,ture);

        (a).attachToRoot为ture的时候,说明R.layout.linearlayout创建的布局已经绑定到ll这个布局
        (b).
    attachToRoot为false的时候,说明R.layout.linearlayout创建的布局没有绑定到ll这个布局
          需要执行
    ll.addView(view)来手动向ll这个布局中添加R.layout.linearlayout。

      (2). 当root参数为null的时候,第三个参数传入任何输入已经没有意义了,相当于只传入两个参数

      总结:无论三个参数还是两个参数,只要第二个参数为空null时候,一定手动执行LinearoutInflater.addView(),来实现向
      LinearoutInflater中添加其他View的布局。第二个参数不为空null时候,通过观察第三个参数来判定,如果为ture,则不用
      通过手动执行LinearoutInflater.addView(),否则会抛出异常(原因:因为已经和父类绑定了,再绑定就多余操作).如果
      为flase,则需要通过手动执行LinearoutInflater.addView()向父类添加绑定. 

      LinearLayout ll = (LinearLayout) findViewById(R.id.ll);
      LayoutInflater inflater = MainActivity.this.getLayoutInflater();
      View view = inflater.inflate(R.layout.linearlayout,ll);

      这代码已经已经向父类添加R.layout.linearlayout布局,不需要手动添加LinearoutInflater.addView(),第三个参数也不需要添加

      7.LinearLayout.addView(View view) : 可以向LinearLayout动态添加视图

    二、RelativeLayout : 相对布局

       1.按照组件相对位置布局
       android:layout_below="@id/button1" : 在button1元素的下面
       android:layout_above="@id/button1" : 在button1元素的上面
       android:layout_toLeftOf="@id/button1" : 在button1元素的左边
       android:layout_toRightOf="@+id/button2" : 在button1元素的右边

       

       2.按照边缘布局  (四大布局里面也可以使用,它是相对于包含那个控件的布局而言)
       android:layout_marginLeft="100dp" : 离某元素左边缘的距离
       android:layout_marginBottom="100dp" : 离某元素底边缘的距离
       android:layout_marginTop="100dp" : 离某元素顶边缘的距离
       android:layout_marginRight="100dp" : 离某元素右边缘的距离  

       3.控件与控件之间的对齐
       android:layout_alignTop="@+id/button1" :和button1顶部对齐
       android:layout_alignBaseline="@id/button1" :和button1基准线对齐
       android:layout_alignBottom="@id/button1" :和button1底部对齐
       android:layout_alignLeft="@id/button1" :和button1左边对齐
       android:layout_alignRight="@id/button1" :和button1右边对齐

       

       

      三、FrameLayout  : 帧布局

        它是从屏幕的左下角(0,0)坐标开始布局,多个组件层叠排序,后面的组件会覆盖前面的组件。


      
     
     
     
     

        

        

         

     

  • 相关阅读:
    JavaScript之正则表达式(2)
    JavaScript之正则表达式(1)
    交换两个变量的值,不借助第三个变量的 三种方法(JS实现)
    网络基础之 OSI七层模型
    jq获取被选中的option的值。jq获取被选中的单选按钮radio的值。
    常见的XSS攻击代码
    php缓存模块apc可能导致php-fpm终止
    Flex布局:实现左右两列自伸缩撑满效果的
    linux系统莫名被黑的诡异经历
    谈谈我对php通信的理解及人生小感
  • 原文地址:https://www.cnblogs.com/liunx1109/p/9825311.html
Copyright © 2011-2022 走看看