通过代码设置布局参数,添加布局
来源:互联网 发布:用益信托 数据 编辑:程序博客网 时间:2024/06/15 03:53
通过代码设置布局参数
1)只有添加到父控件中之后,才能获取布局参数,要不然会报空指针。getLayoutParams(), addView()
2)换一种写法:
LinearLayout.LayoutParams params = (LinearLayout.LayoutParams) tv.getLayoutParams();params.setMargins(50, 0, 0, 0);此时不用再调用setLayoutParams()方法,因为获取的params本身就是tv的布局参数。(直接new布局参数对象)
3)注意是哪个包下的布局参数,一定要注意。
4)理解:
tv = (TextView) findViewById(R.id.tv);LinearLayout.LayoutParams params = (LinearLayout.LayoutParams) tv.getLayoutParams();getLayoutParams();获取的是哪个包下的布局参数?此控件所在的父布局(离此控件所在的父布局)1)在布局文件中,通过xml设置margin值;2)在Activity中通过java代码设置margin值两种形式LinearLayout.LayoutParams params = (LinearLayout.LayoutParams) tv.getLayoutParams();//通过代码动态设置边距params.setMargins(20, 50, 20, 20);
5)LayoutParams相当于一个Layout的信息包,它封装了Layout的位置、高、宽等信息。假设在屏幕上一块区域是由一个Layout占领的,如果将一个View添加到一个Layout中,最好告诉Layout用户期望的布局方式,也就是将一个认可的layoutParams传递进去。
但LayoutParams类也只是简单的描述了宽高,宽和高都可以设置成三种值:
1,一个确定的值;
2,FILL_PARENT,即填满(和父容器一样大小);
3,WRAP_CONTENT,即包裹住组件就好。
代码如下:
package com.example.tuhuadmin.fanxinglei.widget;import android.graphics.Color;import android.os.Bundle;import android.widget.LinearLayout;import android.widget.TextView;import com.example.tuhuadmin.fanxinglei.R;import com.example.tuhuadmin.fanxinglei.utils.DensityUtils;/** * Created on 2016/8/16. * Author:crs * Description:通过代码设置布局参数 */public class AddChildViewActivity extends BaseActivity { private LinearLayout ll_gifts; String gerRule[] = {"满100减9", "满1000减9", "满1000减91"}; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.add_child); ll_gifts = (LinearLayout) findViewById(R.id.ll_gifts); initView(gerRule); } private void initView(String gerRule[]) { int length = 2; int textSizePX = DensityUtils.sp2px(this, 5); for (int i = 0; i < length; i++) { String str = gerRule[i]; TextView tv = new TextView(this); tv.setTextSize(textSizePX); tv.setBackgroundResource(R.drawable.shape); tv.setTextColor(Color.parseColor("#df3348")); tv.setPadding(50, 50, 50, 50); tv.setText(str); ll_gifts.addView(tv); LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT); params.setMargins(50, 0, 0, 0); tv.setLayoutParams(params); } }}
0 0
- 通过代码设置布局参数,添加布局
- 通过代码来添加布局约束
- iOS自动布局之通过代码添加约束
- 代码动态设置控件布局
- 布局参数
- 布局参数
- 动态添加设置布局与控件
- 通过改善代码布局提高应用程序性能
- 通过代码实现Autolayout自动布局
- 通过代码实现RelativeLayout的布局
- Android 正确设置控件布局参数
- 动态生成控件并设置布局参数
- IOS 屏幕适配(纯粹通过代码设置坐标和大小的布局方案)
- Android 代码中添加RelativeLayout布局
- Android代码中动态添加布局
- ios自动布局使用代码添加约束
- android:代码中动态添加子布局
- 26 用代码创建布局并添加
- PE文件(一)
- mybatis返回类型resulttype之string和java.lang.string的不同点
- 事务
- Android 绘制rotate控件/图像
- OC-延展
- 通过代码设置布局参数,添加布局
- Espresso学习笔记--google doc前四篇部分翻译和理解
- [hihocoder #1196 : 高斯消元·二] 高斯消元求异或方程组
- 深入理解abstract class和interface
- spinlock变量没有初始化
- API与C#的数据类型对应关系表(JAVA)
- resin.conf配置详解
- 网络架构模型及相关协议整理分类
- Hello World