动态添加View遇到的问题

12 篇文章 0 订阅
3 篇文章 0 订阅

帮别人改程序

写的程序有点不知所云 还没有注释 读了很久才读明白


向activit的 android.R.id.content 这个根view中 动态添加imageview的时候 所有的imageview 重叠放在左上角

原因是他没有添加定位的语句


在LayoutParams中设置 leftMargin 和 topMargin 后状况依旧

排查后发现其获取 android.R.id.content 的时候是强制转换为 ViewGroup 而非其本身实际的 FrameLayout

而ViewGroup自己是不支持对齐 margin等布局属性的


在 Nexus 4   (4.2.2)系统运行通过 位置正常

但是虚拟机 2.3.3系统中仍然是重叠放在左上角

后又指定 gravity = Grayty.LEFT

虚拟机中显示正常

			ImageView iView = new ImageView(this);
			iView.setImageResource(android.R.drawable.btn_radio);

			FrameLayout.LayoutParams lParams = new FrameLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT,
					ViewGroup.LayoutParams.WRAP_CONTENT);
			lParams.gravity=Gravity.LEFT;
			lParams.leftMargin = l.getX();
			lParams.topMargin = l.getY();

			final FrameLayout vGroup = (FrameLayout) this.findViewById(android.R.id.content);
			vGroup.addView(iView,lParams);


评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值