自定义的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 ...
随机推荐
- Virtual Box常用指令
以下操作需在命令行里将当前路径设为 Virtual Box安装目录 1. 调整磁盘大小(只能调整动态分配的.vdi格式文件) VBoxManage modifyhd "xxx.vdi&quo ...
- Struts2中的Unable to load configuration错误的分析与解决方法
当我们遇到 Unable to load configuration. 这样的错误时,可以根据具体的错误提示找出错误的原因. Unable to load configuration. - inter ...
- OpenStack Networking overview
原文地址:http://docs.openstack.org/newton/install-guide-ubuntu/neutron-concepts.html Networking service ...
- opencv源码阅读之——iOS的两条接口UIImageToMat()和MatToUIImage()
本文为作者原创,未经允许不得转载:原文由作者发表在博客园: http://www.cnblogs.com/panxiaochun/p/5387743.html 在ios下开发基于opencv的程序时经 ...
- LoadRunner11.0下载及安装链接~(By网络)
Download and install O(∩_∩)O: http://www.jb51.net/softjc/71256.html
- 第14章 位图和位块传输_14.4 GDI位图对象(3)
14.4.10 非矩形的位图图像 (1)“掩码”位图——单色位图,要显示的像素对应的掩码置1,不显示置0(2)光栅操作(点这里,见此文分析) (3)MaskBlt函数 ①MaskBlt(hdcDest ...
- JavaScript(DOM操作)(Window.document对象)
一.找到元素: docunment.getElementById("id"): 根据id找,最多找一个: var a =docunment ...
- Eclipse代码追踪功能说明
在使用Java编写复杂一些的程序时,你会不会常常对一层层的继承关系和一次次方法的调用感到迷惘呢?幸亏我们有了Eclipse这么好的IDE可以帮我们理清头绪--这就要使用Eclipse强大的代码追踪功能 ...
- iOS多线程之GCD详解
GCD(Grand Central Dispatch)是基于C语言开发的一套多线程开发机制.也是目前苹果官方推荐的多线程开发方法.iOS三种多线程开发中GCD是抽象层次最高的.当然用起来也是最简单的. ...
- Java8 Lambda表达式和流操作如何让你的代码变慢5倍
原文出处:ImportNew 有许许多多关于 Java 8 中流效率的讨论,但根据 Alex Zhitnitsky 的测试结果显示:坚持使用传统的 Java 编程风格——iterator 和 for- ...