hierarchy_hierarchy添加方法 unity - CSDN
精华内容
参与话题
  • View Hierarchy

    2014-09-29 16:25:48
    view hierarchy是用来说明在window中的view之间的关系的。  可以把view hierarchy认为是一棵翻转的tree structure,而window就是这棵树的最上面的节点(根节点)。树的下面就是父子view之间的关系。从视觉上来看...

    ResourceFrom:http://blog.sina.com.cn/s/blog_6de189920101jn4y.html

    view hierarchy是用来说明在window中的view之间的关系的。 

    可以把view hierarchy认为是一棵翻转的tree structure,而window就是这棵树的最上面的节点(根节点)。树的下面就是父子view之间的关系。从视觉上来看,view hierarchy就是一个封闭的结构,就是一个view包含一个或多个view,而window包含所有的view。


    view hierarchy同时也是responder chain的重要部分,当我们需要渲染window中的内容的时候,应用程序的框架会用它来检测views的layer的层次,来决定需要渲染的部分,从而来避免做一些无用功,这点至关重要。


    接下来来看下在view hierarchy中view的三个属性的定义关系

    1.superview,view的父视图

    2.subviews,view的子视图

    3.window,包含view的window


    关于第三个window属性,在iOS和Mac中是有区别的。

    在iOS中window是一个view,在Mac中却不是。

    在Mac中window有一个单独contentView,所有的子视图是包含在contentView中的。

    在iOS中,window自己扮演了contentView的角色,所以子视图全部包含在window中。


    如下图


    在开发的时候,有时候会遇到

    1.ios attempt to present whose view is not in the window hierarchy

    2.Warning: Attempt to present on whose view is not in the window hierarchy!

    等等这样类似的提示,只要里面提示有 window hierarchy,都是view hierarchy的理解不到位导致的。

    上面的问题都是在一个controller的view还没加到window上的时候又取present另外一个controller,这就相当于在盖楼,2楼还没盖完,直接去盖3楼了,这样肯定是不行。

    遇到上面的问题 最直接的解决方法就是在controller的viewDidAppear里面去调用present。这样可以确保view hierarchy的层次结构不乱。

    展开全文
  • Hierarchy Viewer使用详解

    万次阅读 2016-10-23 11:53:56
    Hierarchy Viewer工具提供了一个可视化界面显示布局的层次结构,让我们可以进行调试,从而优化界面布局结构。 2. 启动工具 启动方式有两种,一种是通过终端命令,输入hierarchyviewer,进行启动,第二种是通过打开...

    1. 功能

    Hierarchy Viewer工具提供了一个可视化界面显示布局的层次结构,让我们可以进行调试,从而优化界面布局结构。

    2. 启动工具

    启动方式有两种,一种是通过终端命令,输入hierarchyviewer,进行启动,第二种是通过打开Android Device Monitor,添加hierarchyviewer视图。官网提示第一种方式已经过期,建议用第二种方式启动,不过并不影响使用,功能是一样的,只不过是将hierarchyviewer整合到了Android Device Monitor里面了而已

    2.1第一种方式:

     

    2.2 第二种方式:


    3. 设备连接

    如果你是用的模拟器或者开发版手机的话则可以直接进行连接调试了,如果不是的话,官方提供了两种方式,进行连接真机调试:

    3.1 通过第三方库,安装和配置ViewServer,也是目前我在使用的方式,工具地址:https://github.com/romainguy/ViewServer,配置步骤比较简单,主要分为如下三步:

    3.1.1 添加依赖,外层build.gradle文件,添加工具远程仓库地址;内层build.gradle文件,添加依赖:

    allprojects {
        repositories {
            jcenter()
            maven { url "https://jitpack.io" }
        }
    }

    dependencies {
        ...................................
        compile 'com.github.romainguy:ViewServer:017c01cd512cac3ec054d9eee05fc48c5a9d2de'
    }

    3.1.2 在manifest文件申请网络权限

      <uses-permission android:name="android.permission.INTERNET"/>
    3.1.3 在应用中需要调试的Activity中添加如下代码,启动ViewServer, 这样就可以与hierarchy viewer通信了:

    public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            // Set content view, etc.
            ViewServer.get(this).addWindow(this);
        }
    
        public void onDestroy() {
            super.onDestroy();
            ViewServer.get(this).removeWindow(this);
        }
    
        public void onResume() {
            super.onResume();
            ViewServer.get(this).setFocusedWindow(this);
        }

    3. 2 第二种方式,通过设置环境变量,export ANDROID_HVPROTO=ddm,我用小米note, 5.0系统的手机,发现并无效果,简书上有童鞋用Nexus的手机时可以正常使用呢的,目前暂未找到原因。

    4. 分析页面布局性能

    4.1 选择一个节点,点击右上角的的按钮,就可以获取到布局绘制的时间,如图:


    这里我们主要关注下面的三个圆圈,从左到右依次,代表View的Measure, LayoutDraw的性能,不同颜色代表不同的性能等级:

    1) 绿表示该View的此项性能比该View Tree中超过50%View都要快;例如,一个绿点的测量时间意味着这个视图的测量时间快于树中的视图对象的50%

    2)黄表示该View的此项性能比该View Tree中超过50%View都要慢;例如,一个黄点布局意味着这种观点有较慢的布局时间超过50%的树视图对象。

    3)红表示该View的此项性能是View Tree中最慢的;例如,一个红点的绘制时间意味着花费时间最多的这一观点在树上画所有的视图对象。


    4.2 测量结果分析

    红色节点是代表应用性能慢的一个潜在问题,下面是几个例子,如何来分析和解释红点的出现原因?

    1)如果在叶节点或者ViewGroup中,只有极少的子节点,这可能反映出一个问题,应用可能在设备上运行并不慢,但是你需要指导为什么这个节点是红色的,可以借助Systrace或者Traceview工具,获取更多额外的信息;

    2)如果一个视图组里面有许多的子节点,并且测量阶段呈现为红色,则需要观察下子节点的绘制情况;

    3)如果视图层级结构中的根视图,Messure阶段为红色,Layout阶段为红色,Draw阶段为黄色,这个是比较常见的,因为这个节点是所有其它视图的父类;

    4)如果视图结构中的一个叶子节点,有20个视图是红色的Draw阶段,这是有问题的,需要检查代码里面的onDraw方法,不应该在那里调用。


    5. 布局常见问题与优化建议

    1)没有用的父布局时指没有背景绘制或者没有大小限制的父布局,这样的布局不会对UI效果产生任何影响。我们可以把没有用的父布局,通过<merge/>标签合并来减少UI的层次;

    2)使用线性布局LinearLayout排版导致UI层次变深,如果有这类问题,我们就使用相对布局RelativeLayout代替LinearLayout,减少UI的层次;


    3)不常用的UI被设置成GONE,比如异常的错误页面,如果有这类问题,我们需要用<ViewStub/>标签,代替GONE提高UI性能。


    资料参考:

    https://developer.android.com/studio/profile/hierarchy-viewer-results-walkthru.html

    http://2dxgujun.com/post/2014/09/27/Improving-Layout-Performance.html

    展开全文
  • Hierarchy

    2019-09-30 05:50:25
    Using Example 2.2, there are three different activities at the sender site and another three activities at the receive site. 使用2.2示例,在发送端网址有三次不同的活动,同样,在接收端也有三次活动。...

    Using Example 2.2, there are three different activities at the sender site and another three activities at the receive site.

    使用2.2示例,在发送端网址有三次不同的活动,同样,在接收端也有三次活动。

    The task of transporting the letter between the sender and the receiver is done by the carrier. 

    从发传者到接收者之间的信件传输任务,被载体完成。

    carrier /k'/ (carriers) 1. [N-count] carrier is a vehicle  that is used for carrying people, especially soldiers, or things.

    carrier是一辆被用来装人的车辆,特别是,士兵,或者货物。

    2.【n-count】 A carrier is a passenger airline . Carrier是一种乘客空机,

    转载于:https://www.cnblogs.com/666638zhangqiang/p/4778242.html

    展开全文
  • hierarchyviewer

    热门讨论 2020-07-30 23:32:42
    android hierarchyviewer 代码
  • 扩展hierarchy显示

    2020-09-23 10:25:30
    在开发过程中hierarchy面板加一些提示,当然你也可以画一些icon,用来提示制作prefab的过程中不规范的操作,可以实时监测,避免出现问题,再回头优化!效果如下: 具体做法如下: 1.自定义静态类必须注明...

    在开发过程中hierarchy面板加一些提示,当然你也可以画一些icon,用来提示制作prefab的过程中不规范的操作,可以实时监测,避免出现问题,再回头优化!效果如下:
    提示不规范的制作组件
    具体做法如下:
    1.自定义静态类必须注明[InitializeOnLoad] //Unity启动的时候执行编辑器的脚本 需要静态的构造函数
    2.一个静态构造,主要用来load icon资源,另一个就是注册编辑器事件

    using UnityEditor;
    using UnityEngine.UI;
     
    [InitializeOnLoad]
    public class HierarchyExtension
    {   
        /// <summary>
        /// 静态构造
        /// </summary>
        static HierarchyExtension()
    	{
    		//load icon		icon = (Texture2D)Resources.Load ("icon");
    		EditorApplication.hierarchyWindowItemOnGUI += DrawHierarchyIcon;
    	}
          
        private static void DrawHierarchyIcon(int instanceID, Rect selectionRect)
    	{
    	GameObject obj = EditorUtility.InstanceIDToObject (instanceID) as GameObject;
    		DrawErrorImage(obj , selectionRect);
    	}
    
        static void DrawErrorImage(GameObject go, Rect selectionRect)
        {
            Image image = go.GetComponent<Image>();
            if (image != null)
            {
                SerializedObject so = new SerializedObject(image);
                SerializedProperty sp = so.GetIterator();
                Rect rect;
                while (sp.NextVisible(true))
                {
                    if (sp.propertyType == SerializedPropertyType.ObjectReference)
                    {
                        if (sp.displayName == "Sprite" && sp.objectReferenceValue == null)
                        {
                            rect = new Rect(selectionRect.x + selectionRect.width - 206f - UsedWidth, selectionRect.y, 86f, 16f);
                            UsedWidth += 80;
                            textStyle.normal.textColor = Color.yellow;
                            GUI.Label(rect, "Image为空,用EmptyImage替换", textStyle);                      
                         
                        } 
                    }
                }
            }
    
        }
    }
    
    展开全文
  • Hierarchy Viewer的基本使用

    千次阅读 2019-07-18 16:19:51
    Hierarchy Viewer提供了一个可视化界面,显示布局的层次结构,让我们可以进行调试,从而优化界面布局结构。 不过它只支持模拟器,真机中还无法使用,若要使用可通过开源项目View server,通过这个项目可以让真机...
  • B. Hierarchy

    2019-07-11 18:45:43
    用邻接矩阵建图后, 设cost[v]表示去到顶点v的最小值。 很多个人去顶点v的话,就选最小的那个就OK ...然后,如果有大于等于2个人的cost[v]是inf的,就不符合boss只有一个这个规矩。...不应该只统计有孤立点就输出-1,...
  • Python层次聚类sci.cluster.hierarchy.linkage函数详解

    万次阅读 多人点赞 2020-08-26 16:25:58
    1 函数原型:scipy.cluster.hierarchy.linkage(y, method='single', metric='euclidean', optimal_ordering=False)函数功能:进行层次聚类/凝聚聚类。参数:y: 可以是1维压缩向量(距离向量),也可以是2维观测向量...
  • 一、报错截图 android8以后sdk自带的uiautomator直接打开,截取不到机器界面信息。 建议可以使用以下方法手动截取 二、解决方法 1.截取uix文件 ...注明:新手机地址改成:/data/loc...
  • 【Android工具】被忽略的UI检视利器:Hierarchy Viewer

    万次阅读 热门讨论 2010-04-25 17:39:00
    Hierarchy Viewer是随AndroidSDK发布的工具,位置在tools文件夹下,名为hierarchyviewer.bat。它是Android自带的非常有用而且使用简单的工具,可以帮助我们更好地检视和设计用户界面(UI),绝对是UI检视的利器,但是...
  • SAP MM Product Hierarchy的配置

    千次阅读 2018-07-27 07:58:32
    笔者所在的D项目里,因业务需要启用Product Hierarchy, 业务提交了其设计的Product Hierarchy结构图给我,     让我帮忙在系统里设置好。   因SAP系统标准的产品层次是三层,每个层次的代码的长度分别是5,...
  • Eclipse - Open Call Hierarchy - 打开调用层级 1. 选中函数,鼠标右键,选择 Open Call Hierarchy (打开调用层级) 选项 快捷键:Ctrl + Alt + H 2. Call Hierarchy 3. Call Hierarchy 中双击函数,可以快速进入...
  • Android UI 优化——使用HierarchyViewer工具

    万次阅读 多人点赞 2014-06-01 17:00:08
    我们这一篇文章会提到为什么使用HierarchyViewer,怎么使用HierarchyViewer,后者内容会多一下。
  • 助力快速掌握编辑器对 Unity Hierarchy 的扩展、及效果展示 为初学者节省宝贵的时间,避免采坑! Unity编辑器扩展、Unity右键菜单、Unity Editor中文教程,Unity Hierarchy 中文教程 为了开发的便利性,我们经常要...
  • 今天写了一个更新UI的小例子,没想到出了log打印了这样一个错误:Only the original thread that created a view hierarchy can touch its views。goolgle了一下找到了原因。原来android中相关的view和控件不是线程...
  • KEEP_HIERARCHY的用法

    2019-07-23 10:04:08
    KEEP_HIERARCHY是一种对综合和实现过程的约束。 一般而言,一个HDL设计的顶层包含好几个底层子模块。XST在综合过程中为了得到更好的结果,一般打平设计的层次。但是也可以在综合的过程中通过添加KEEP_HIERARCHY约束...
  • 在开发过程中,经常需要查看或修改场景中的元素,有时直接在scene中点选不是特别的好点中,而直接在Hierarchy视图中去找需要一个一个节点展寻找,非常的浪费时间,效率差。 经过摸索总结出了三种比较快的在...
  • 查看日志后发现报了root of context hierarchy 一顿查询之后发现是项目启动的问题: 我直接是用java -jar …jar的方式启动的。----这种方式启动会随着远程中断的关闭而结束进程 那就换种启动方式: nohup java -jar ...
  • 我用官方文档的例子来解释一下opnecv中contour hierarchy的概念: 比如说,在一张图片里会有好几个物品,它们可能位于不同的位置,也可能A物体嵌在B物体里,这时候我们可以把A物体称作父体(parent),B物体称为...
  • eclipse中open call hierarchy

    千次阅读 2018-06-25 17:40:08
    问题:Eclipse中选中一个方法,右击选中open call hierarchy,不显示哪些地方调用了这个方法,却显示了这个方法里面调用了那些方法解决: 首先你在代码中右键不是能找到“open call Hierarchy” 这个选项吗,点击后...
1 2 3 4 5 ... 20
收藏数 94,728
精华内容 37,891
关键字:

hierarchy