自定义的ViewGroup中添加自定义View 造成的无法显示问题(个人)
首先说一下我在网上找了很久没有找到说明方法所以我就自己试着写了一下
1、我自定义了一个继承了RelativeLayout的ViewGroup
java代码如下:
/**
* 简单自定义三头像
* @author M.Z
*/
public class MyGroupHeaderImg extends RelativeLayout { public MyGroupHeaderImg(Context context, AttributeSet attrs) {
super(context, attrs);
this.mContext = context;
mView = inflate(context, R.layout.view_group_head_img,this);
initView();
} public MyGroupHeaderImg(Context context, AttributeSet attrs, int defStyle) {
this(context, attrs);
} private Context mContext; private CircleProgressBar firstImg,scendImg,threeImg; private View mView;
/**
* 初始化
*/
private void initView() {
firstImg = (CircleProgressBar) mView.findViewById(R.id.first_ivAvator);
scendImg = (CircleProgressBar) mView.findViewById(R.id.scend_ivAvator);
threeImg = (CircleProgressBar) mView.findViewById(R.id.three_ivAvator);
} /**
* 设置Url
* @param avatorUrls
*/
public void setAvatorArray(String[] avatorUrls){ VocImageLoader.getInstance().displayImage(avatorUrls[0],
firstImg, MyDisplayImageOptions.getAvatorImageOption(),
null, null); VocImageLoader.getInstance().displayImage(avatorUrls[1],
scendImg, MyDisplayImageOptions.getAvatorImageOption(),
null, null); VocImageLoader.getInstance().displayImage(avatorUrls[2],
threeImg, MyDisplayImageOptions.getAvatorImageOption(),
null, null);
}
}
xml布局如下:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:circleBar="http://schemas.android.com/apk/res/com.iflytek.vocation_edu_cloud"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:background="@android:color/transparent"> <com.iflytek.voc_edu_cloud.view.CircleProgressBar
android:id="@+id/scend_ivAvator"
android:layout_width="50dp"
android:layout_height="50dp"
android:layout_alignRight="@+id/first_ivAvator"
android:layout_alignTop="@+id/first_ivAvator"
android:layout_marginRight="19dp"
android:layout_marginTop="32dp"
android:contentDescription="@string/app_name"
circleBar:border_color="@color/white"
circleBar:border_progress="100"
circleBar:border_width="1dp"
circleBar:inner_border_color="#ffffff"
circleBar:one_src="@drawable/defult_avatar" /> <com.iflytek.voc_edu_cloud.view.CircleProgressBar
android:id="@+id/three_ivAvator"
android:layout_width="50dp"
android:layout_height="50dp"
android:layout_alignLeft="@+id/first_ivAvator"
android:layout_alignTop="@+id/scend_ivAvator"
android:layout_marginLeft="21dp"
android:contentDescription="@string/app_name"
circleBar:border_color="@color/white"
circleBar:border_progress="100"
circleBar:border_width="1dp"
circleBar:inner_border_color="#ffffff"
circleBar:one_src="@drawable/defult_avatar" /> <com.iflytek.voc_edu_cloud.view.CircleProgressBar
android:id="@+id/first_ivAvator"
android:layout_width="50dp"
android:layout_height="50dp"
android:layout_centerHorizontal="true"
android:contentDescription="@string/app_name"
circleBar:border_color="@color/white"
circleBar:border_progress="100"
circleBar:border_width="1dp"
circleBar:inner_border_color="#ffffff"
circleBar:one_src="@drawable/defult_avatar" /> </RelativeLayout>
因为我布局自定义的ViewGroup中包含了一个自定义的View,而且有个xmlns:circleBar="http://schemas.android.com/apk/res/com.iflytek.vocation_edu_cloud"
导致我在调用的时候 是一片空白调用的xml如下:
<com.iflytek.voc_edu_cloud.view.MyGroupHeaderImg
android:id="@+id/member_item_ivAvator"
android:layout_width="80dp"
android:layout_height="80dp"
android:layout_alignParentLeft="true"
android:contentDescription="@string/app_name"
/>
解决方法:
要解决不显示的问题也很简单就是在调用的地方加上这句 xmlns:circleBar="http://schemas.android.com/apk/res/com.iflytek.vocation_edu_cloud"如下:
<com.iflytek.voc_edu_cloud.view.MyGroupHeaderImg
xmlns:circleBar="http://schemas.android.com/apk/res/com.iflytek.vocation_edu_cloud"
android:id="@+id/member_item_ivAvator"
android:layout_width="80dp"
android:layout_height="80dp"
android:layout_alignParentLeft="true"
android:contentDescription="@string/app_name"
/>
之后就可以正常的使用了.
自定义的ViewGroup中添加自定义View 造成的无法显示问题(个人)的更多相关文章
- ViewGroup onInterceptTouchEvent,ViewGroup onTouchEvent,View onTouchEvent执行顺序说明
今天抽出了一些时间实践了viewgroup和view的触摸事件顺序,之前也试过,总是忘记,今天记下笔记说明一下 首先 onInterceptTouchEvent只会出现在viewgroup中,view ...
- Databinding在自定义ViewGroup中如何绑定view
首先我们在平时开发中使用databinding的时候大部分都是在Activity或者fragment中,但我们一旦在自定义ViewGroup中使用的时候就会出现问题 问题描述: 我们在自定义Linea ...
- android开发中scrollview添加自定义view的滑动显示问题
最近做了一个实战用到自定义view,由于view比屏幕大所以想放到scrollview中,如下程序.发现不显示.于是对scrollview进行了研究. <LinearLayout xmlns:a ...
- android 自定义ViewGroup和对view进行切图动画实现滑动菜单SlidingMenu
示意图就不展示了,和上一节的一样,滑动菜单SlidingMenu效果如何大家都比较熟悉,在这里我简单说明一下用自定义ViewGroup来实现. 实现方法:我们自定义一个ViewGroup实现左右滑动, ...
- android 自定义ViewGroup和对view进行切图动画实现滑动菜单SlidingMenu[转]
http://blog.csdn.net/jj120522/article/details/8095852 示意图就不展示了,和上一节的一样,滑动菜单SlidingMenu效果如何大家都比较熟悉,在这 ...
- Android 中的View与ViewGroup
Android重点知识--View和ViewGroup与自定义控件 作者:丁明祥 邮箱:2780087178@qq.com 一.基础 ViewGroup 参考资料: Android 手把手教您自定义V ...
- 向集合中添加自定义类型--建议在自定义类型的时候要重写equals方法
package com.bjpowernode.t01list; import java.util.ArrayList; /* * 向集合中添加自定义类型 */public class TestLis ...
- android中实现view可以滑动的六种方法续篇(二)
承接上一篇,上一篇中讲解了实现滑动的第五种方法,如果你还没读过,可点击下面链接: http://www.cnblogs.com/fuly550871915/p/4985482.html 这篇文章现在来 ...
- android中实现view可以滑动的六种方法
在android开发中,经常会遇到一个view需要它能够支持滑动的需求.今天就来总结实现其滑动的六种方法.其实每一种方法的 思路都是一样的,即:监听手势触摸的坐标来实现view坐标的变化,从而实现vi ...
随机推荐
- Collider Collision 区别
Collision 中带有碰撞的信息,例如:速度和撞击到的点 示例 void OnCollisionEnter2D(Collision2D coll) { foreach(ContactPoint c ...
- jmeter 函数助手里的P,property的使用
1.函数助手里的 p及property的使用 ${__P(init,2)} , ${__property(init,start,200)} 可以自行定义变量名称,及变量的默认值 P 变量名为init, ...
- django自带wsgi server vs 部署uwsgi+nginx后的性能对比
一.下面先交代一下测试云主机 cpu: root@alexknight:/tmp/webbench-1.5# cat /proc/cpuinfo |grep model model : model n ...
- 【MVC】AJAX+PartialView实现商城首页的楼层加载
使用AJAX实现楼层加载的例子已经非常多,但是html代码大都是手动拼接的,编写不便,而且难以维护. 下面就使用AJAX+PartialView来实现 1.html代码 <!--楼层1开始--& ...
- 嵌入支付宝SDK,出现“LaunchServices: ERROR: There is no registered handler for URL scheme alipay”错误
应用项目中嵌入支付宝SDK,在模拟器运行app后,会出现“LaunchServices: ERROR: There is no registered handler for URL scheme al ...
- distributed caching for .net applications
distributed caching for .net applications fast, scalable distributed caching with meaningful perform ...
- java中wait/notify机制
通常,多线程之间需要协调工作.例如,浏览器的一个显示图片的线程displayThread想要执行显示图片的任务,必须等待下载线程 downloadThread将该图片下载完毕.如果图片还没有下载完,d ...
- 通过ssh tunnel连接内网ECS和RDS
通过ssh tunnel连接内网ECS和RDS 这里讲了ssh tunnel的原理.很清晰. 此后又给外网访问内网增加了一种思路.感觉特别棒. 拓宽了思路:
- Linux shell中的符号
.单小括号 () ①命令组.括号中的命令将会新开一个子shell顺序执行,所以括号中的变量不能够被脚本余下的部分使用. 括号中多个命令之间用分号隔开,最后一个命令可以没有分号,各命令和括号之间不必有空 ...
- UDP的坏处
众所周知,UDP是一个面向无连接的协议.通信时不可靠的.这就会出现一些问题 (1)数据报丢失 因为是无连接,的所以可以用recvfrom和sendto来接收和发送消息,如果socket是阻塞的,那么当 ...