android动态添加View
2015-11-25 09:12
375 查看
public void setTargetView(View target, View beAddView) {
if (beAddView.getParent() != null) {
((ViewGroup)
beAddView.getParent()).removeView(beAddView);
}
if (target == null) {
return;
}
if (target.getParent() instanceof FrameLayout) {
((FrameLayout) target.getParent()).addView(beAddView);
} else if (target.getParent() instanceof ViewGroup) {
// use a new Framelayout container for adding badge
ViewGroup parentContainer = (ViewGroup) target.getParent();
int groupIndex = parentContainer.indexOfChild(target);
parentContainer.removeView(target);
FrameLayout badgeContainer = new FrameLayout(getContext());
ViewGroup.LayoutParams parentLayoutParams = target.getLayoutParams();
badgeContainer.setLayoutParams(parentLayoutParams);
target.setLayoutParams(new ViewGroup.LayoutParams(
ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT));
parentContainer.addView(badgeContainer, groupIndex, parentLayoutParams);
badgeContainer.addView(target);
badgeContainer.addView(beAddView);
} else if (target.getParent() == null) {
Log.e(getClass().getSimpleName(), "ParentView is needed");
}
}
if (beAddView.getParent() != null) {
((ViewGroup)
beAddView.getParent()).removeView(beAddView);
}
if (target == null) {
return;
}
if (target.getParent() instanceof FrameLayout) {
((FrameLayout) target.getParent()).addView(beAddView);
} else if (target.getParent() instanceof ViewGroup) {
// use a new Framelayout container for adding badge
ViewGroup parentContainer = (ViewGroup) target.getParent();
int groupIndex = parentContainer.indexOfChild(target);
parentContainer.removeView(target);
FrameLayout badgeContainer = new FrameLayout(getContext());
ViewGroup.LayoutParams parentLayoutParams = target.getLayoutParams();
badgeContainer.setLayoutParams(parentLayoutParams);
target.setLayoutParams(new ViewGroup.LayoutParams(
ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT));
parentContainer.addView(badgeContainer, groupIndex, parentLayoutParams);
badgeContainer.addView(target);
badgeContainer.addView(beAddView);
} else if (target.getParent() == null) {
Log.e(getClass().getSimpleName(), "ParentView is needed");
}
}
相关文章推荐
- Android Log工具之Luffy
- Android 数据存储方式(一.文件+内部外部存储吐血详解)
- Android 下载线程的编写
- Android中图片的三级缓存
- Android and MJPEG
- Android开发实现距离位置变化(类似滴滴打车附件的车辆)
- 10 条提升 Android 性能的建议
- Android-存储方式(持久化数据的方式)
- 让Android应用保持灵敏响应:AsyncTask
- Android之如何解决右上角不显示3个点的菜单
- Android之原生控件列表
- Android之常见数据类型
- Android之常用代码片段收集
- Android之常用头文件列表
- Android之Widget认识
- no resource identifer found in 'android' package
- 今天起记录我的android 开发历程
- Android 属性动画(Property Animation)
- Android5.0+(CollapsingToolbarLayout)
- 免费的android室内地图接口分享