Android动态布局小结
程序员文章站
2024-02-13 11:17:30
android动态布局相比静态布局,动态布局不用再将xml转变了布局代码,提高了一定的效率,当然可以忽略不记。动态布局主要是比较灵活,可以很快的在代码中直接修改布局,并直接...
android动态布局相比静态布局,动态布局不用再将xml转变了布局代码,提高了一定的效率,当然可以忽略不记。动态布局主要是比较灵活,可以很快的在代码中直接修改布局,并直接使用控件进行业务逻辑开发。但代码量通常比较大,维护没有静态布局方便。不过,作为一个android开发人员,掌握一定的动态布局技巧,有时在工作中也是可以提高一定的代码开发效率。
在动态布局中,要想实现一个布局,一般是先创建五大布局的对象。然后对这些对象进行属性设置,之后再向里面添加子布局或控件。
以relativelayout为例。
relativelayout mlayout = new relativelayout(); //设置relativelayout的子控件属性对象,并设置其尺寸样式。每个groupview中都有一个layoutprams,都是用来给子控件设置发生的。 relativelayout.layoutprams params = new relativelayout.layoutprams(layoutparams.wrap_content, layoutparams.wrap_content); //增加 子控件 imageview iv = new imageview(getactivity()); iv.setimageresource(r.drawable.tab_icon_conversation_normal); //设置子控件在realtivelayout中的位置属性。 params.addrule(relativelayout.center_in_parent, relativelayout.true); //给iv 增加属性 //将iv,增加到mlayout中 mlayout .addview(iv, params);
从最后一句,可以看出来,params对象引用设置的属性都是作用有imageview这个子控件上的,然后把iv与params一块加入到realtivelayout中去。
整理android动态布局方法总结
//绝对布局
absolutelayout abslayout=new absolutelayout (this); setcontentview(abslayout); button btn1 = new button(this); btn1.settext(”this is a button”); btn1.setid(1); absolutelayout.layoutparams lp1 = new absolutelayout.layoutparams( viewgroup.layoutparams.wrap_content, viewgroup.layoutparams.wrap_content, 0,100); abslayout.addview(btn1, lp1);
//相对布局
relativelayout relativelayout = new relativelayout(this); setcontentview(relativelayout); absolutelayout abslayout=new absolutelayout (this); relativelayout.layoutparams lp1 = new relativelayout.layoutparams(viewgroup.layoutparams.wrap_content, viewgroup.layoutparams.wrap_content); lp1.addrule(relativelayout.align_parent_top); lp1.addrule(relativelayout.center_horizontal, relativelayout.true); relativelayout.addview(abslayout ,lp1);
//线性布局
linearlayout ll = new linearlayout(this); edittext et = new edittext(); ll.addview(et); //动态添加布局的方法1. linearlayout ll = (linearlayout)this.getlayoutinflater().inflate(r.layout.main1,null); setcontentview(ll); linearlayout ll2 = (linearlayout)this.getlayoutinflater().inflate(r.layout.main2,ll); //这样 main2 作为 main1的子布局 加到了 main1的 根节点下 //动态添加布局的方法2 addview. linearlayout ll = (linearlayout)this.getlayoutinflater().inflate(r.layout.main1,null); setcontentview(ll); linearlayout ll2 = (linearlayout)this.getlayoutinflater().inflate(r.layout.main2,null); ll.addview(ll2);
上一篇: iOS UIWebView实现禁止用户复制剪切功能
下一篇: 重写Java中的equals方法介绍
推荐阅读
-
Android动态布局小结
-
Android RecyclerView加载两种布局的方法
-
Android Listview中显示不同的视图布局详解及实例代码
-
Android TabLayout(选项卡布局)简单用法实例分析
-
Android开发实现popupWindow弹出窗口自定义布局与位置控制方法
-
Android实现动态改变app图标的示例代码
-
Android动态修改ToolBar的Menu菜单示例
-
android studio2.3如何编译动态库的过程详解
-
Android_Loader_使用LoaderManager管理Loader实现异步动态加载数据
-
Android中关于相对布局RelativeLayout的技巧汇总