Unity3D-关于动态生成的Button和ScrollView冲突的解决方案
2017-02-14 14:56
896 查看
参考:http://blog.csdn.net/pz789as/article/details/55099085
一般在做游戏列表的时候,我们通常使用的是ScrollView,然后在代码里面动态的生成一个一个的列表项,而且每个列表项可能需要使用Button,表示点击了哪一个。
但是一般的Button只有一个OnClick,而且还是不带参数的,如果所有按钮都指向同一个回调,那么你根本就不知道是点击了哪一项。这个时候如果没有ScrollView,我们可以使用EventTrigger去做:
我开始也是这么写的,但是因为是放在ScrollView下面,需要点击滑动,可惜的是,这个EventTrigger将drag事件也都截取了,无法传递到ScrollView!但是如果我们直接使用Button自带的OnClick函数就可以,于是就出现了冲突。不过好在我还发现了一个好办法,想法起于上面的EventTrigger,它这里的Callback使用了一个delegate,从这里我们可以知道,在Button的onClick的AddListener也增加一层delegate,然后把需要传递的数据传递下去即可:
这样得到的结果和上面是一模一样的,而且在点到Button上面时,拖动也可以触发ScrollView的滚动!
一般在做游戏列表的时候,我们通常使用的是ScrollView,然后在代码里面动态的生成一个一个的列表项,而且每个列表项可能需要使用Button,表示点击了哪一个。
但是一般的Button只有一个OnClick,而且还是不带参数的,如果所有按钮都指向同一个回调,那么你根本就不知道是点击了哪一项。这个时候如果没有ScrollView,我们可以使用EventTrigger去做:
EventTrigger trigger = pdObj.AddComponent<EventTrigger>(); EventTrigger.Entry entry = new EventTrigger.Entry(); entry.eventID = EventTriggerType.PointerClick; int themeIndex = nowCount; int packIndex = i; entry.callback.AddListener((data)=>{ OnPackSelect(themeIndex, packIndex); }); trigger.triggers.Add(entry);
我开始也是这么写的,但是因为是放在ScrollView下面,需要点击滑动,可惜的是,这个EventTrigger将drag事件也都截取了,无法传递到ScrollView!但是如果我们直接使用Button自带的OnClick函数就可以,于是就出现了冲突。不过好在我还发现了一个好办法,想法起于上面的EventTrigger,它这里的Callback使用了一个delegate,从这里我们可以知道,在Button的onClick的AddListener也增加一层delegate,然后把需要传递的数据传递下去即可:
int themeIndex = nowCount; int packIndex = i; Button btnPD = pdObj.GetComponent<Button>(); btnPD.onClick.AddListener(()=>{ OnPackSelect(themeIndex, packIndex); });
这样得到的结果和上面是一模一样的,而且在点到Button上面时,拖动也可以触发ScrollView的滚动!
相关文章推荐
- 关于ScrollView拖拽事件和Button点击事件冲突解决方法
- 关于ListView和ScrollView冲突问题的解决方案
- 关于js动态生成元素,注册(绑定)的事件失效的解决(on)
- (原创)铺统计之基--在SQL中动态生成列的解决方案
- 关于Hibernate利用@DynamicInsert和@DynamicUpdate生成动态SQL语句 -- 如何提高效率
- 第一个文章,今天比较兴奋啊! 给大家一个关于SQL复合查询的文章(动态生成多个where条件)
- uGUI使用代码动态添加Button.OnClick()事件(Unity3D开发之十二)
- android嵌套使用ViewPager和ScrollView焦点冲突解决方案
- 关于js动态生成元素,注册(绑定)的事件失效的解决(on)
- 关于VS2008与office2003及和office2007插件个别冲突的解决方案
- 解决scrollView 和listView 冲突的一种解决方案。
- 分享c#动态生成文字图片解决方案
- 分享动态生成文字图片解决方案
- 关于asp动态生成word文档并下载
- 关于动态生成输入界面的一些想法及实践
- 关于RadioGroup和Scrollview联动带来的事件冲突
- 关于改造动态网站为生成静态页的方案
- 关于模版重载函数函数命名冲突的解决方案
- 关于castor-1.3.2 xsd生成javabean类名冲突的问题
- 解决TextView多行滑动与NestedScrollView等,滑动冲突,我的解决方案