安卓常见类备忘录之LayoutParams
来源:互联网 发布:布林线指标源码 编辑:程序博客网 时间:2024/05/21 17:19
1、简介及常见子类
LayoutParams,全称LayoutParameters。Layout是布局,而Parameters乃是参数的意思,这个类一般用在自定义的View控件,或是获取View的宽高值上。
在谷歌官方的API中,对其定义为“view通过layoutparams来告诉父View,希望被如何布局”。而基本的LayoutParams只会描述宽高,并拥有三个大家耳熟能详的常量,即:
FILL_PARENT、MATCH_PARENT和WRAP_CONTENT。
如果希望定义一些其他的参数如Margin、Padding等等,就需要用到LayoutParams的子类。
常见直接子类
AbsListView.LayoutParams, AbsoluteLayout.LayoutParams, Gallery.LayoutParams, ViewGroup.MarginLayoutParams, ViewPager.LayoutParams,WindowManager.LayoutParams
常见间接子类
ActionBar.LayoutParams, ActionMenuView.LayoutParams, BaseCardView.LayoutParams, DrawerLayout.LayoutParams, FrameLayout.LayoutParams,GridLayout.LayoutParams, GridLayoutManager.LayoutParams, LinearLayout.LayoutParams, LinearLayoutCompat.LayoutParams, RadioGroup.LayoutParams,RecyclerView.LayoutParams, RelativeLayout.LayoutParams, SlidingPaneLayout.LayoutParams, StaggeredGridLayoutManager.LayoutParams,TableLayout.LayoutParams, TableRow.LayoutParams, Toolbar.LayoutParams
2、常见方法
View.getLayoutParams();
字面上好像是返回该View对应的LayoutParams。但实际上返回的为父View的LayoutParams,这个其实比较好理解,因为LayoutParams实际上就是告诉父View如何去设置子View布局的。谷歌官方文档中说的很清楚,如果该View没有挂靠在父View或是setLayoutParams这个方法没有调用成功,则该方法会返回null;而如果该View已经挂靠在父View上,该方法永远不会返回null。
ViewGroup.setLayoutParams(params);
ViewGroup设置它的LayoutParams参数,如何去布局子类控件。
3、在自定义ViewGroup时的用法
在自定义ViewGroup时,可以使用LayoutParams来为ViewGroup中的子控件设置参数。
如:定义一个新的LayoutParams用来给新添加的组件设置布局参数。
<pre name="code" class="java">LayoutParams lp = new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);//构造方法中的两个参数分别为宽高lp.addRule(RelativeLayout.ALIGN_PARENT_LAYOUT, TRUE); //如果希望添加其他的参数,可以使用addRule方法,此处设置参数为对齐父ViewViewGroup.this.addView(view, lp); //最后将要采用该参数的子View对象添加到ViewGroup中
自定义ViewGroup时设置对应的LayoutParams,复写以下方法即可,返回值可设置希望该ViewGroup对应的的LayouParams:
public LayoutParams generateLayoutParams(AttributeSet attrs) { return new CustomLayout.LayoutParams(getContext(), attrs); }
- 安卓常见类备忘录之LayoutParams
- 安卓LayoutParams用法
- 安卓LayoutParams讲解
- 菜鸟的安卓实习之路---layoutParams
- 安卓开发学习之006 LinearLayout.LayoutParams详解
- 安卓开发学习之006 LinearLayout.LayoutParams详解
- Android异常布局的ClassCastException 安卓 LayoutParams castclass
- 安卓、苹果手机备忘录同步
- LayoutParams类
- 安卓常见布局
- 安卓常见控件
- 安卓常见布局
- 常见Layout的LayoutParams总结
- 安卓开发之常见死机问题--log分析
- 安卓开发之常见死机问题--log分析
- 安卓开发之常见死机问题--log分析
- 安卓-开发常见错误之AndroidManifest.xml file missing
- 安卓开发之常见死机问题--log分析
- 串口termios结构体的详细设置
- Redhat Enterprise 下kernel编译方法
- MySQL的“load data infile”中文件找不到的问题
- 动态规划之最长公共子序列
- Oracle 保密字段截取 例如手机号,身份证信息
- 安卓常见类备忘录之LayoutParams
- MAC下安装与配置MySQL
- javascript内存泄露及解决方案详解
- 开源框架EventBus的使用
- [Rx86OS-IV] 导入32位C语言
- 125:Valid Palindrome【两指针】【字符串】
- Kafka(分布式发布订阅消息系统)
- U8glib如何显示中文
- java并发-协作对象之间死锁测试