zoukankan      html  css  js  c++  java
  • 关于Android下各个布局方式里面LayoutParams的用法

     

    博客分类:

          最近为各个布局下的水平垂直居中搞烦了。因为是动态构建的布局,一些在XML里面很好写的居中,动态JAVA代码里不知道么样实现,今天终于再了解了其中的意思。

    首先第一点也是最先应该了解的:

    setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));

    这一句话其实是子对父的,也就是父布局下的子控件要设置这句话,并且由于布局很多,也不同,虽然都继承至ViewGroup但是各个布局的局性和方法有很大的不同。很显然上面这句应该这样写才算准确:

    setLayoutParams(new TableRow.LayoutParams(TableRow.LayoutParams.FILL_PARENT,

    TableRow.LayoutParams.FILL_PARENT));

    这表示这个子控件的父布局是一个TableRow , 这样的LayoutParams 太多,所以应明确指明。下面分别说下两个常用到布局:

    1. FrameLayout下动态设置子控件居中:

     在XML文件中只用设置这个属性:



    动态用JAVA代码要这样实现:

    FrameLayout.LayoutParams btnLytp = new FrameLayout.LayoutParams(80,LayoutParams.WRAP_CONTENT);

    btnLytp.gravity = Gravity.CENTER;

    btnMemo.setLayoutParams(btnLytp);

    2. RelativeLayout下动态设置子控件居中:

    在XML下配置RelativeLayout非常简单,设置对应属性就好。

    JAVA代码动态实现则用到这个方法了:



    用法:

    RelativeLayout.LayoutParams lp=new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT); 

    lp.addRule(RelativeLayout.ALIGN_PARENT_RIGHT, RelativeLayout.TRUE); 

    lp.addRule(RelativeLayout.ALIGN_PARENT_TOP, RelativeLayout.TRUE); 

    btn1.setLayoutParams(lp);

  • 相关阅读:
    保存会话数据——cookie学习
    HttpServletRequest学习
    HttpServletResponse 学习
    Servlet学习
    Http协议简单学习笔记
    利用tomcat配置网站
    PHPCMS-V9 获取一级栏目、二级栏目、三级栏目
    PHP判断当前访问的是 微信、iphone、android 浏览器
    二维数组根据某个字段排序
    动物界的再生一个故事
  • 原文地址:https://www.cnblogs.com/appzhang/p/2654406.html
Copyright © 2011-2022 走看看