`
rocye
  • 浏览: 118654 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

关于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);

 

  • 大小: 78.6 KB
  • 大小: 54.1 KB
0
0
分享到:
评论

相关推荐

    Android LinearLayout.LayoutParams 使用方法

    1.LinearLayout.LayoutParams使用说明 2.在Java代码中利用LinearLayout.LayoutParams构建布局

    android 实现FlowLayout 流线布局(自定义ViewGroup)

    [Android开发:LayoutParams的用法](http://blog.csdn.net/double2hao/article/details/51438798) [MarginLayoutParams--一个可以在代码中直接设置margin的方法]...

    代码动态设置view或布局的宽高

    然而这时候你一定要注意强制类型转换时的LayoutParams类型,因为android中存在3种LayoutParams,即RelativeLayout.LayoutParams、LinearLayout.LayoutParams、ViewGroup.LayoutParams,那么我们改用哪一个呢?...

    Android开发艺术探索.任玉刚(带详细书签).pdf

    本书是一本Android进阶类书籍,采用理论、源码和实践相结合的方式来阐述高水准的Android应用开发要点。本书从三个方面来组织内容。第一,介绍Android开发者不容易掌握的一些知识点;第二,结合Android源代码和应用层...

    Android开发艺术探索

    《Android开发艺术探索》是一本Android进阶类书籍,采用理论、源码和实践相结合的方式来阐述高水准的Android应用开发要点。《Android开发艺术探索》从三个方面来组织内容。第一,介绍Android开发者不容易掌握的一些...

    BiliBili-基于ijkplayer rxjava retrofit,组件化思想,实现一个仿B站的Android客户端.zip

    }在 AndroidStudio 中每一个组件都会有对应的 AndroidManifest.xml,application和library使用的AndroidManifest.xml不同,所以要为组件开发模式下的业务组件再创建一个 AndroidManifest.xml,然后根据isModule指定...

    Android状态栏的适配汇总

    Android 5.0 及其以后版本:设置属性 View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN 使得我们的内容布局可以延伸到系统状态栏,然后直接使用方法 setStatusBarColor() 把系统状态栏设置成透明就好了。 Android 4.4 ~ ...

    《Android自定义组件开发详解》

    7.3.4 自定义LayoutParams 238 7.4 案例:流式布局(FlowLayout) 246 7.5 练习作业 256 第八章 Scroller与平滑滚动 257 8.1 概述 257 8.2 认识scrollTo()和scrollBy()方法 258 8.3 Scroller类 264 8.4 平滑滚动的...

    星座说明书

     Android的每一个可视化界面,都有其唯一的布局配置文件,该文件里面有各种布局方式,各种资源文件如图像,文字,颜色的引用,程序在运行时,可以通过代码对配置文件进行读取。这样就可以形成不同的可视化界面和...

    浅析Android Dialog中setContentView()方法

    在使用Dialog时,我们一般都会自定义要显示的内容布局。Dialog自带了三个方法来支持自定义内容布局。 public void setContentView (int layoutResID); public void setContentView (View view); public void ...

    Android RecyclerView显示Item布局不一致解决办法

    在自定义RecyclerAdapter的时候,在重写onCreateViewHolder方法是使用了 @Override public H onCreateViewHolder(ViewGroup parent, int viewType) { View view=View.inflate(context,layoutId,null); return ...

    Android 仿蘑菇街列表弹出和瀑布流ScrollView+RelativeLayout实现

    原理使用RelativeLayout任意定位位置 核心方法 private void addViewByMargins(RelativeLayout layout, View view, int x, int y, int width, int height) { RelativeLayout.LayoutParams layout_params = null; ...

    GoogleNavigationDrawerMenu-侧滑menu菜单.zip

    DrawerLayout的封装,对于菜单是ListView的应用来说,这个库提供了更直接的使用方式,你不再需要去写menu的布局,如果你对DrawerLayout的使用没有信心,这个库使用起来可能会让你觉得简单些。项目地址:...

    FollowFingerLayout:安卓

    关注手指布局Android:帮助您将Windowmanager与动画配合使用用法 val root = LayoutInflater.from(applicationContext).inflate(R.layout.layout_window_player, null)val fingerLayout = FollowFingerLayout(root)...

Global site tag (gtag.js) - Google Analytics