zoukankan      html  css  js  c++  java
  • RelativeLayout相对布局

    相对布局容器中, 子组件的位置总是相对兄弟组件,父容器来决定的;


    RelativeLayout支持的属性

    (1) 对齐方式

    xml属性 : android:gravity;

    设置方法 : setGravity(int);

    作用 : 设置布局容器内子元素的对齐方式, 注意与android:layout_gravity区分, 后者是设置组件本身元素对齐方式;

    (2) 忽略对齐方式

    xml属性 : android:ignoreGravity;

    设置方法 : setIgnoreGravity(int);

    作用 : 设置该组件不受gravity属性影响, 因为gravity属性影响容器内所有的组件的对齐方式, 设置了之后,该组件就可以例外;


    LayoutParams属性

    (1) 只能设置boolean值的属性

    这些属性都是相对父容器的, 确定是否在父容器中居中(水平, 垂直), 是否位于父容器的 上下左右 端;

    是否水平居中 : android:layout_centerHorizontal;

    是否垂直居中 : android:layout_centerVertical;

    是否位于中央 : android:layout_centerInParent;

    是否底端对齐 : android:layout_alignParentBottom;

    是否顶端对齐 : android:layout_alignParentTop;

    是否左边对齐 : android:layout_alignParentLeft;

    是否右边对齐 : android:layout_alignParentRight;

    (2) 只能设置其它组件id的属性

    位于所给id组件左侧 : android:layout_toLeftOf;

    位于所给id组件右侧 : android:layout_toRightOf;

    位于所给id组件的上边 : android:layout_above;

    位于所给id组件的下方 : android:layout_below;

    与所给id组件顶部对齐 : android:layout_alignTop;

    与所给id组件底部对齐 : android:layout_alignBottom;

    与所给id组件左边对齐 : android:layout_alignLeft;

    与所给id组件右边对齐 : android:layout_alignRight;


    相对布局常用方法

    (1) 获取屏幕中一个组件的位置

    创建数组 : 要先创建一个整型数组, 数组大小2位; 这个数组传入getLocationOnScreen()方法;

    将位置信息传入数组 : 可以调用View.getLocationOnScreen()方法, 返回的是一个数组 int[2], int[0] 是横坐标, int[1] 是纵坐标;

    //获取组件
    
    Button b = (Button) this.findViewById(R.id.Button01);
    //创建数组, 将该数组传入getLocationOnScreen()方法
    int locations[] = new int[2];
    //获取位置信息
    b.getLocationOnScreen(locations);
    //获取宽度
    int width = locations[0];
    //获取高度
    int height = locations[1]; 
    

    (2) LayoutParams的使用设置所有属性

    属性设置方法少 : Android SDK中View类只提供了很少用于设置属性的方法,大多数属性没有直接对应的获得和设置属性值的方法, 看起来貌似不是很好用;

    使用LayoutParams设置属性值 : Android中可以对任何属性进行设置, 这里我们需要一个LayoutParams对象, 使用这个LayoutParams.addRule()方法, 可以设置所有组件的属性值; 设置完之后调用View.setLayoutParams()方法, 传入刚才创建的LayoutParams对象, 并更新View的相应的LayoutParams属性值, 向容器中添加该组件;

    代码中动态设置布局属性 :

    a. 创建LayoutParams对象

    b. 调用LayoutParams对象的addRule()方法设置对应属性;

    c. 调用View.setLayoutParams()方法将设置好的LayoutParams对象设置给组件;

    d. 调用addView方法将View对象设置到布局中去;

    使用代码设置android:layout_toRightOf 和 android:layout_below属性 :

    //装载布局文件
    
    RelativeLayout relativeLayout = (RelativeLayout) getLayoutInflater().inflate(R.layout.relative, null);
    
    //装载要动态添加的布局文件
    
    Button button = (Button) relativeLayout.findViewById(R.id.bt1);
    
    //创建一个LayoutParams对象
    
    LayoutParams layoutParams = new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
    
    //设置android:layout_toRightOf属性
    
    layoutParams.addRule(RelativeLayout.RIGHT_OF, R.id.bt2);
    
    //设置android:layout_below
    
    layoutParams.addRule(RelativeLayout.BELOW, R.id.bt2);
    
    //更新Button按钮的属性
    
    button.setLayoutParams(layoutParams);
    
    //向布局中动态添加按钮
    
    relativeLayout.addView(button); 
    

     

     

  • 相关阅读:
    win10系统磁盘占用率高的解决方法,占用100%的问题
    码率/比特率定义
    风好大,我好冷
    风好大,我好冷——团队作品
    风好大,我好冷——团队介绍
    风好大,我好冷——个人分工理解
    风好大,我好冷——团队风采
    命令行作业
    面向对象程序设计作业三
    作业二
  • 原文地址:https://www.cnblogs.com/loaderman/p/6430559.html
Copyright © 2011-2022 走看看