使用LayoutParams设置布局
来源:互联网 发布:苏新诗毛糙体简 mac 编辑:程序博客网 时间:2024/05/21 12:07
ViewGroup.LayoutParams
java.lang.Object
↳android.view.ViewGroup.LayoutParamsClass Overview
LayoutParams are used by views to tell their parents how they want to be laid out.
LayoutParams是ViewGroup的一个内部类, 每个不同的ViewGroup都有自己的LayoutParams子类
DEMO:
//创建一个线性布局 private LinearLayout mLayout; mLayout = (LinearLayout) findViewById(R.id.layout); //现在要往mLayout里边添加一个TextView TextView textView = new TextView(Activity01.this); textView.setText("Text View " ); //这里是设置 这个textView的布局 FILL_PARENT WRAP_CONTENT 和在xml文件里边设置是一样的如 /**<TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="Text View"/>*/ //第一个参数为宽的设置,第二个参数为高的设置。 LinearLayout.LayoutParams p = new LinearLayout.LayoutParams( LinearLayout.LayoutParams.FILL_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT ); //调用addView()方法增加一个TextView到线性布局中 mLayout.addView(textView, p); //比较简单的一个例子
LayoutParams继承于Android.View.ViewGroup.LayoutParams.
LayoutParams相当于一个Layout的信息包,它封装了Layout的位置、高、宽等信息。假设在屏幕上一块区域是由一个Layout占领的,如果将一个View添加到一个Layout中,最好告诉Layout用户期望的布局方式,也就是将一个认可的layoutParams传递进去。
可以这样去形容LayoutParams,在象棋的棋盘上,每个棋子都占据一个位置,也就是每个棋子都有一个位置的信息,如这个棋子在4行4列,这里的“4行4列”就是棋子的LayoutParams。
但LayoutParams类也只是简单的描述了宽高,宽和高都可以设置成三种值:
1,一个确定的值;
2,FILL_PARENT
3,WRAP_CONTENT
2、addRule()
public classRelativeLayout
extends ViewGroupjava.lang.Object ↳android.view.View ↳android.view.ViewGroup ↳android.widget.RelativeLayoutjava.lang.Object ↳android.view.View ↳android.view.ViewGroup ↳android.widget.RelativeLayoutvoid android.widget.RelativeLayout.LayoutParams.addRule(int verb, int anchor)
public void addRule(int verb, int anchor) 设置控件的相对位置
Adds a layout rule to be interpreted by the RelativeLayout. Use this for verbs that take a target, such as a sibling (ALIGN_RIGHT) or a boolean value (VISIBLE).
Parameters
RelativeLayout
, such as ALIGN_WITH_PARENT_LEFT.TRUE
) for true or 0 for false). For verbs that don't refer to another sibling (for example, ALIGN_WITH_PARENT_BOTTOM) just use -1.package sunny.example.layoutparamstaddrule;import android.content.Context;import android.util.AttributeSet;import android.widget.Button;import android.widget.RelativeLayout;import android.widget.RelativeLayout.LayoutParams;import android.widget.TextView;public class TestView extends RelativeLayout{private LayoutParams mLayoutParams_1,mLayoutParams_2;Button mButton;TextView mTextView;public TestView(Context context) {super(context);// TODO Auto-generated constructor stubmButton = new Button(context);mTextView = new TextView(context);init();}public TestView(Context context, AttributeSet attrs) {super(context, attrs);// TODO Auto-generated constructor stubmButton = new Button(context);mTextView = new TextView(context);init();}public TestView(Context context, AttributeSet attrs, int defStyle) {super(context, attrs, defStyle);// TODO Auto-generated constructor stubmButton = new Button(context);mTextView = new TextView(context);init();}public void init(){mLayoutParams_1 = new LayoutParams(LayoutParams.MATCH_PARENT,LayoutParams.WRAP_CONTENT);mLayoutParams_1.addRule(RelativeLayout.ALIGN_TOP); addView(mButton,mLayoutParams_1);mLayoutParams_2 = new LayoutParams(LayoutParams.MATCH_PARENT,LayoutParams.WRAP_CONTENT);mLayoutParams_2.addRule(RelativeLayout.BELOW, TRUE);mTextView.setText("Hey");addView(mTextView,mLayoutParams_2);}}
Thanks to 泡在网上的日子
- 使用LayoutParams设置布局
- LayoutParams布局
- android代码中设置布局规则 LayoutParams.addRule(...)
- Java代码使用LayoutParams改变RelativeLayout 中的控件布局
- 动态添加布局-LayoutParams
- 使用layoutParams设置控件高宽需要注意的问题
- 使用WindowManager.LayoutParams的x和y设置窗体位置
- ViewGroup.LayoutParams设置setMargins
- Android动态设置布局的LayoutParams属性总遇到造型异常
- LayoutParams使用示例
- WindowManager.LayoutParams的使用
- LayoutParams的使用
- 在fragment使用LayoutParams
- LayoutParams的使用场合
- [android基础]LayoutParams使用
- Android LayoutParams使用总结
- LayoutParams的使用
- LayoutParams理解和使用
- Activity的生命周期和启动模式-Android开发艺术探索读书笔记第一章
- 关于slax
- 反射
- java实现无组件导出CSV文件
- Eclipse ANT
- 使用LayoutParams设置布局
- Adobe AIR 代码签名证书使用指南
- 【C语言】数组与指针
- 苹果Mac系统开发必备资源
- PYthon投票程序段以及sorted函数说明
- MySQL 索引的创建、删除和查看操作
- java 关于SimpleDateFormat线程安全问题
- GitHub Top 100的Android开源库
- 杭电OJ 2546 01背包问题