LinearLayout API 分析

        首先,LinearLayout是继承自ViewGroup的控件容器,支持addView(...)方法组添加子控件。子控件的排列方式是线性排列,可以选择(HORIZONTAL)横向或者(VERTICAL)纵向,这个参数可以在XML布局中设置,也可以在Java源码中控制:

viewContainer.setOrientation(LinearLayout.VERTICAL);

android:orientation="vertical"

 

        第二,既然是容器,那么就会包含多个子控件,LinearLayout提供了在控件之间设置Drawable作为间隔的操作。方法setShowDividers(int showDividers)是控制是否显示Drawable间隔,显示在哪个位置的方法,参数的取值及说明如下表:

SHOW_DIVIDER_NONE
默认值,不显示Drawable分割设置
SHOW_DIVIDER_BEGINNING在容器的开头部位显示一个Drawable分割对象
SHOW_DIVIDER_END在容器的末尾部位显示一个Drawable分割对象
SHOW_DIVIDER_MIDDLE在任意两个子控件中间插入一个Drawable分割对象,插入总数为(n-1)个
        设置的方式同样有XML布局和Java代码两种方式:

android:divider="@drawable/lock"
android:showDividers="middle"
android:dividerPadding="50dp"
viewContainer.setShowDividers(LinearLayout.SHOW_DIVIDER_MIDDLE);
viewContainer.setDividerPadding(50);
viewContainer.setDividerDrawable(getResources().getDrawable(R.drawable.sample));


        第三,线性排列的容器LinearLayout,子控件在横向或者纵向排列时,就会产生一个对齐方式的问题,API给出了设置子控件对齐方式的几个方法:

        void setGrivity(int grivity) 

        void setHorizontalGrivity(int horizontalGrivity) 

        void setVeritalGrivital(int grivity) 
        上面这几个方法的参数在View.Grivity类中以常量形式给出了定义。

        最后,这里给出几个API方法,访问域为protected的方法在使用LinearLayout时不会用到,但在必要时对LinearLayout进行自定义封装时会用到他们:

        1. protected boolean checkLayoutParams(ViewGroup.LayoutParams p)

        2. protected LinearLayout.LayoutParams generateDefaultLayoutParams()

        3. public LinearLayout.LayoutParams generateLayoutParams(ViewGroup.LayoutParams p)

        4. public LinearLayout.LayoutParams generateLayoutParams(AttributeSet attrs)

        5. protected void onDraw(Canvas canvas)

        6. protected void onLayout(boolean changed, int left, int top, int bottom, int right)

        8. protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值