编码设置FrameLayout子View的layout_gravity,gravity

方法:

setLayoutParams: 用来设置带有layout前缀的属性,所有子View attach到父View都会有LayoutParams,但是parentView.addView(childView)之前,childView.getLayoutParams()会返回null。

根据源码:

    public void setLayoutParams(ViewGroup.LayoutParams params) {
        if (params == null) {
            throw new NullPointerException("Layout parameters cannot be null");
        }
        mLayoutParams = params;
        resolveLayoutParams();
        if (mParent instanceof ViewGroup) {
            ((ViewGroup) mParent).onSetLayoutParams(this, params);
        }
        requestLayout();
    }

可以看出要想使setlayoutParams生效,必须有父View,就是调用了addView

setGravity:用来设置内部的子View。

代码:

	mTitleBar = new LinearLayout(context);
    	mTitleBar.setLayoutParams(new LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, 200));
    	mTitleBar.setBackgroundColor(Color.BLACK);

    	TextView textView = new TextView(context);
    	textView.setText("lfjasodijfaodjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj");
    	mTitleBar.addView(textView);
    	LinearLayout.LayoutParams textParams = new LinearLayout.LayoutParams(
    			ViewGroup.LayoutParams.MATCH_PARENT,ViewGroup.LayoutParams.WRAP_CONTENT);
    	textView.setLayoutParams(textParams);
    	textView.setGravity(Gravity.END);

    	mBottomBar = new LinearLayout(context);
    	TextView bottomTV = new TextView(context);
    	bottomTV.setText("lfjasodijfaodjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj");
    	mBottomBar.addView(bottomTV);

    	this.addView(mTitleBar);
    	this.addView(mBottomBar);

    	FrameLayout.LayoutParams frameLayoutParams = new FrameLayout.LayoutParams(FrameLayout.LayoutParams.MATCH_PARENT, 70);
    	frameLayoutParams.gravity = Gravity.TOP;
    	mTitleBar.setLayoutParams(frameLayoutParams);

    	FrameLayout.LayoutParams frameLayoutParams2 = new FrameLayout.LayoutParams(FrameLayout.LayoutParams.MATCH_PARENT, 70);
    	frameLayoutParams2.gravity = Gravity.BOTTOM;
    	mBottomBar.setLayoutParams(frameLayoutParams2);
    	

效果是:

两个TextView,在两个LinearLayout中,上面的TextView gravity是右边。两个LinearyLayout在FrameLayout中layout_gravity一个Top一个Bottom

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-04 03:28:35

编码设置FrameLayout子View的layout_gravity,gravity的相关文章

Android FrameLayout子view居中(左居中,右居中)等

Android的布局FrameLayout默认是把布局内的子view堆砌在左上角,但是,可以通过设置子view的: android:layout_gravity 此参数控制子view的布局位置,实现FrameLayout的各种子view布局位置,如左居中,右居中,居中等等,要点在android:layout_gravity的参数设置中组合使用"center"."left"."right"等,现在给出XML代码实例布局: <FrameLayo

LinearLayout的gravity属性以及其子元素的layout_gravity何时有效;RelativeLayout如何调整其子元素位置只能用子元素中的属性来控制,用RelativeLayout中的gravity无法控制!!!

LinearLayout的gravity属性以及其子元素的layout_gravity何时有效 转自:http://www.cnblogs.com/xiaoran1129/archive/2013/03/26/2982733.html 相信对于Android的初学者来说,大家都曾经被layout里这两个极其相似的属性迷惑过. 简单使用一下搜索工具,我们就不难找到下面这样的答案: layout_gravity 表示组件自身在父组件中的位置 gravity             表示组件的子组件在

UIView 设置alpha后, 子view也随着变化alpha, 解决方法

//        _closeContainerBar.alpha = 0.7; [_closeContainerBar setBackgroundColor:[[UIColor blackColor] colorWithAlphaComponent:0.7]]; UIView 设置alpha后, 子view也随着变化alpha, 解决方法

android XML布局和子View按比例布局

首先按照程序的目录结构大致分析: res/layout/ 这个目录存放的就是布局用的xml文件,一般默认为main.xml res/values/ 这个目录存放的是一堆常量的xml文件 res/drawable/ 存放的是一些图片什么的,当然图标也在这里 下面主要对layout下的xml文件做个介绍,顺便也把布局的方法总结一下: ·文件的开头 <?xml version="1.0" encoding="utf-8"?> 这是在说明xml版本及字符编码 ·

android:clipChildren属性的分析——是否剪裁子View

MainActivity如下: package cc.testclipchildren; import android.os.Bundle; import android.app.Activity; /** * android:clipChildren属性的分析 * 该属性默认值为android:clipChildren="true" * 单从字面意思理解clipChildren的意思是:裁剪(缩短)孩子 * 我们将其值设置为false后那么当子控件的高度高于父控件时 * 也会完全显示

Android中父View和子view的点击事件的执行过程

Android中的事件类型分为按键事件和屏幕触摸事件,Touch事件是屏幕触摸事件的基础事件,有必要对它进行深入的了解. 一个最简单的屏幕触摸动作触发了一系列Touch事件:ACTION_DOWN->ACTION_MOVE->ACTION_MOVE->ACTION_MOVE...->ACTION_MOVE->ACTION_UP 当屏幕中包含一个ViewGroup,而这个ViewGroup又包含一个子view,这个时候android系统如何处理Touch事件呢?到底是ViewG

android根据子view里面的数量自动排版的一个ViewGroup

很多时候 android系统给我们的控件不能满足我们的需求,要使界面做的好,所以大部分都是自己写的控件 . 在我做一个 短信群发界面时,需要 这个 自适应子view数量 改变自身高度的 view 所以就自写了一个 这样的控件 现 分享出来 和大家一起共享.  当然  如果朋友 下载了  添加了一些新功能  也请 帮忙 分享 出来 谢谢. 大家一起成长. 废话少说 上代码: MainActivity public class MainActivity extends ActionBarActivi

spring字符编码设置

<filter> <filter-name>encodingFilter</filter-name> <filter-class>org.springframework.web.filter.CharacterEncodingFilter   </filter-class>   <init-param> <param-name>encoding</param-name> <param-value>U

UIView的层次调整,及子view布局模式自动布局模式(停靠模式)

UIView*view1=[[UIView alloc]initWithFrame:CGRectMake(10,30,300,30)]; view1.backgroundColor=[UIColor redColor]; [self.window addSubview:view1]; [view1 release]; UIView*view2=[[UIView alloc]init]; view2.frame=CGRectMake(30,20,50,100); view2.backgroundC