自定义的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 ...
随机推荐
- leetcode-HouseRobber
这道题比较简单,所以我会介绍的比较粗略: 题目: 有一个小偷想沿着马路上的房子偷东西,每家每户都有一些钱,但这条街上装了监控系统,如果相邻的两户人家都被偷了的话那么就会触发报警器.小偷的目标就是在不触 ...
- AS开发者转LAYA一周心得
LAYA太神奇了,你可以完全不会H5,会AS3就能开发出H5游戏
- Hibernate中saveOrUpdate()和merge()的区别
this.getSession().merge(obj); this.getSession().saveOrUpdate(obj); saveOrUpdate(): saveOrUpdate()基本上 ...
- ThreadLocal用法和实现原理
如果你定义了一个单实例的java bean,它有若干属性,但是有一个属性不是线程安全的,比如说HashMap.并且碰巧你并不需要在不同的线程中共享这个属性,也就是说这个属性不存在跨线程的意义.那么你不 ...
- offsetParent详解
offsetParent与parentNode一样,都是获取父节点,但是offsetParent却有很大的不同之处: offsetParent找有定位的父节点,没有定位默认是body,ie7以下定位在 ...
- 微信JSSDK配置文件说明
微信JSSDK配置文件说明 1.官方配置 wx.config({ debug: true, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开, ...
- 漂浮QQ
漂浮QQ 点击下载
- CentOS 6.4 下安装vsftpd
概述: vsftpd是Linux下比较著名的FTP服务器,搭建FTP服务器当然首选这个. 本文介绍了在CentOS 6.4下安装vsftpd.配置虚拟用户登录FTP的过程. 正文: 一:安装vsftp ...
- 多个mapper location时, mybatis spring的自动扫描配置
1. MapperScannerConfigurer 里面的basePackage, 多个package用逗号分隔 2. SqlSessionFactoryBean里面的mapperLocations ...
- Centos5.8 安装 PHP5.5 和 memcached
安装GIT 需要先安装gcc-c++ (sudo yum install gcc-c++) sudo yum install gettext-devel expat-devel cpio perl o ...