UGUI学习笔记之Dropdown

一、Dropdown控件(下拉列表)结构

  1.Label是用来显示当前选中项的Text

  2.Arrow是用来显示下拉箭头的Image

   3.Template是一个ScrollView控件,作为下拉列表的选项显示区域模板,默认是未启动状态,但为了在编辑的时候能看见它,我们可以暂时的开启它。当用户点击Dropdown时,会复制Template创建一个名为Dropdown List的ScrollView。Dropdown List与Template的区别在于Content中的item,Template的Content只有一个item作为模板而存在,而Dropdown List的Content中的item是根据选项自动对应创建的。简单来说Template->Viewport->Content->Item就是每个选项的模板。

 

二、Dropdown组件属性介绍(部分属性与Button一致,不再赘述)

 

属性 说明
Template

Dropdown的一个子物体,当点击Dropdown时,会以此物体为模板创建dropdown list(用来显示所有选项的scroll view) 。默认是未启动状态,但为了在编辑的时候能看见它,我们可以暂时的开启它。

Template必须有一个挂有Toggle组件的item项,作为选项模板,所有的选项会以这个item为模板去创建。当点击dropdown时,有几个选项就会复制几个item,item的父物体会自动的调整大小去容纳所复制的item,再根据在下面提到的Options属性中设置的文字和图片,对这些复制的item进行文字和图片上的替换。

Caption Text

设置一个text用来显示选中项的文字,默认是上面提到的Label

Caption Image 设置一个Image用来显示选中项的图片。默认没有,需要自己设置。
Item Text 选项模板(Template->Viewport->Content->Item)中用来显示文字的text。
Item Image 选项模板(Template->Viewport->Content->Item)中用来显示图片的Image。默认没有,需要自己添加
Value 当前选中项的索引。0是第一项,1是第二项。。。
Alpha  Fade Speed Dropdown List 渐隐渐显的速度
Options  

每一项的文字和图片。当用户点击Dorpdown控件时,会根据这里的设置把每一项自动创建出来。

每一项的文字和图片的相对位置和选项模板(Template->Viewport->Content->Item)中一样

可以在Inspector面板中手动设置,也可以通过代码设置。

每个选项包含一段文本和一张图片,文本和图片可以都有,也可以只取其一,也可以全没有(似乎没什么意义)。

 

三、补充:下拉列表的位置

  dropdown list相对于Dropdown控件的位置是由Template的Rect Transform组件的anchoring和pivot决定。默认情况下,dropdown会显示在控件下方,这是把Template锚定到Dropdown控件的下方来实现的。Template的轴心(pivot)需要位于顶端,这样当它容纳数量可变的选项时,才会只向下扩展。相反,如果把Template放到Dropdown上方,并把Template轴心放到低端,那么它就会向上扩展。

 

   可以想象,当下拉列表显示区域超出了Canvas,那么就会有一些选项看不见和选择不了。Dropdown有简单的逻辑去避免这种情况发生,默认情况下列表是显示在控件下方的,但当显示在控件下方会超出Canvas范围时,就将其位置逆转,即显示在Dropdown的上方。但是这种简单逻辑就造成了一个问题,Template的大小不能超过(Canvas大小减去Dropdown控件大小)的一半,否则上下两边都不能显示完全。

 

 

作者:一白梦人

出处:https://www.cnblogs.com/ybmr/p/ugui_dropdown.html

版权:本文版权归作者和博客园共有

转载:欢迎转载,但未经作者同意,必须保留此段声明;必须在文章中给出原文连接;否则必究法律责任

posted @ 2021-01-30 21:00  一白梦人  阅读(468)  评论(0编辑  收藏  举报