Cocostudio学习笔记(6) ScrollView+ ListView+ PageView

这篇记录了三个控件的使用流程:ScrollView和 ListView、PageView

----------------------------------------------------------------------------------------------------------------------------

ScrollView

---------------------------------------------------------------------------------------------------------------------------

ScrollView这个控件大家应该挺熟的吧,反正我是经常用到。
1、首先在cocostudio 的UI界面添加一个ScrollView的控件,然后设置其属性。ScrollView要设置的东西比较多,我一开始做了如下的设置:
a 设置scrollView的显示窗口大小(Size)为:300x300;
b 设置scrollView的容器层大小(ContentSize)为 300x300;
c 打开BounceBack,也就是当scrollView拖到边缘时有一种弹性的效果
d 设置name 为 scrollView
e 往scollView中添加三个ImageView控件,其中两个放在scrollView显示窗口内,另外一个放在scrollView的显示窗口下方
e 导出工程到cocos2dx项目的Resources目录中

2、在cocos2dx中加载ScrollView的Widget,代码如下:

Widget* scrollViewUi = GUIReader::getInstance()->widgetFromJsonFile("ScrollViewUI/ScrollViewUi_1.json");
this->addChild(scrollViewUi,2);

调试发现,scrollView的widget已经添加进了场景,但是想拖动scrollView却无法拖动,这也就看不到放在scrollView上的最下方的ImageView控件。
回到Cocostudio中看下之前ScrollView的属性设置,发现容器层的大小不应该设置成与显示窗口一样,而应该比它大,这样才能拖动scrollView,于是修改第一点的第 b 步:
b 设置scrollView的容器层大小(ContentSize)为 300x400;
重新导出cocostudio工程,并运行cocos2dx项目,拖动成功。

3、从scrollView的Widget中提取ScrollView。天真的我又到TestCpp中查找了下UIScrollView的控件名,结果啥都没看到,包括之后的ListView,PageView都是如此。最后我恍然大悟,说到底scrollView这类控件其实就是一个Layout嘛,所以他们都统一用Layout来加载就可以了

auto layout = static_cast<Layout*>(Helper::seekWidgetByName(scrollViewUi,"scrollView"));
layout->setPosition(Point(300,300));

4、ScrollView控件在cocostudio中的默认方向是竖直的,如果要改变为方向可以将Scroll Director中修改。

5、关于layout的源码我打算在PageView与ListView写完后再一起讲,那应该是一个比较大的模块。

----------------------------------------------------------------------------------------------------------------------------

ListView

---------------------------------------------------------------------------------------------------------------------------

ListView这货说到底就是tableView,但个人感觉比tableView好用一点,因为,我基本没使用过tableView,如果你让我在cocos2dx用tableView实现某个UI,我肯定要花费点时间要了解下tableView的使用方法,原因就在于我认为只要用scrollView就可以实现tableView的所有功能了。

-------------
扯远了,进入ListView的主题中来:
新建一个cocostudio工程,命名为ListViewUI,然后拉一个ListView的控件到场景中,之后设置它的属性,设置方法和ScrollView还是有一定的出入,如下:
1、我先设置ListView的显示窗口大小(Size)为300x300;

2、设置name 为 ”ListView“;

3、选中ListView,右键--addObject,往ListView中添加一个ImageView控件。发现新添加的ImageView控件默认的位置在ListView的左上角,并且ImageView控件中的一个红色的”+“号告诉我是不能设置这个控件的基本属性的,也就无法挪动它的位置。我又尝试添加了个CheckBox控件,发现它默认的位置在之前的ImageView控件的右边,同时它也无法修改属性。这个情况让我始料不及,于是我又到属性栏里找原因,最终发现原因出在”child Control Layout“这一类的属性里,它的作用是自动给ListView中的控件排列位置,包括排列方向,控件间的距离等。还是比较好理解的,所以我没有截图啦。嘿嘿。

4、在ListView中不一定要设置容器层的大小,因为当你添加控件到ListView中,如果控件所处的坐标已经超出了ListView的显示窗口范围,那么ListView会自动调整容器层的大小。

5、个人感觉ListView还是蛮方便的,特别是对我这种之前一直将ScrollView当tableView用的人来说,简直就是福音啊!!!

6、在cocos2dx加载ListView控件,如下:

Widget* ListViewUi = GUIReader::getInstance()->widgetFromJsonFile("ListViewUi_1/ListViewUi_1.json");
this->addChild(ListViewUi,2);

7、单独提取出ListView控件

auto layout = static_cast<Layout*>(Helper::seekWidgetByName(ListViewUi,"ListView"));
layout->setPosition(Point(300,300));

8、就酱紫吧。没什么好补充的了。

----------------------------------------------------------------------------------------------------------------------------

ListView

---------------------------------------------------------------------------------------------------------------------------

终于看到PageView这货了,其实它也就是ScrollView的特别版。scrollView拖动多少界面就挪动多少,PageView拖一点界面就直接翻页了,真刺激。
------------------------
下面看下PageView该从哪里搞起...过程还是蛮纠结的
1、首先往cocostudio场景中拖入一个PageView控件,然后选中控件,右键,在弹出的菜单中选择"add Child page",之后就会出现一个新的页面。这时候不要停,用同样的方式继续添加一个页面。将鼠标在编辑器的其他位置随便点击一下,之后再选中刚刚的PageView控件,发现已经没有“add Chid page”这个菜单了。可是如果我要再加好几个页面该怎么办呢?答案很简单,同时按“ctrl + z”,撤销之前的操作,直到回到PageView刚拖进场景时的状态,然后你可以继续添加页面了(我知道方法很挫。。);

2、改变cocostudio的页面大小。这个和上面那一步很像,你必须在PageView控件最初始的状态下才能改变它的Size,如果你已经添加了好几个页面,那么将无法改变它的Size;

3、往PageView中添加控件。这个就和ScrollView、ListView一样了,右键--add Object。

4、导出该cocostudio工程到cocos2dx项目的资源目录下。然后在cocos2dx中加载该cocostudio的widget:

cocos2d::ui::Widget* pageViewUi = GUIReader::getInstance()->widgetFromJsonFile("PageView/pageViewUi_01.json");
this->addChild(pageViewUi,2);

就酱紫吧。

尊重原创,转载请注明来源:http://blog.csdn.net/star530/article/details/37371211

Cocostudio学习笔记(6) ScrollView+ ListView+ PageView

时间: 2024-08-05 02:58:57

Cocostudio学习笔记(6) ScrollView+ ListView+ PageView的相关文章

Cocostudio学习笔记(3) ImageView + Slider

这篇记录了两个控件的使用流程:ImageView 和 Slide. ---------------------------------------------------------------------------------------------------------------------------- ImageView ---------------------------------------------------------------------------------

Cocostudio学习笔记(4) LoadingBar+ TextField

这篇记录了两个控件的使用流程:LoadingBar和 TextField. ---------------------------------------------------------------------------------------------------------------------------- LoadingBar ----------------------------------------------------------------------------

Cocostudio学习笔记(2) Button + CheckBox

这篇记录了两个控件的使用流程:Button 和 CheckBox. ---------------------------------------------------------------------------------------------------------------------------- Button ------------------------------------------------------------------------------------

NGUI 学习笔记之一 ScrollView

一.createScrollView 1.First, select the panel you want to be your scroll view and right-click anywhere in the Scene View to bring up the context menu, then choose Attach -> Scroll View. 2.The last step is to add the UIDragScrollView script to at least

Android学习笔记(20)————利用ListView制作带竖线的多彩表格

http://blog.csdn.net/conowen/article/details/7421805 /******************************************************************************************** * author:[email protected]大钟                                                                          

Android 学习笔记之十 Listview 优化原理

听到这,大家觉得应该是再熟悉不过了吧,当然或许很多人已经知道 ListView 的优化.我在这里就再详细的讲一遍.顺便让ListView分类显示. 之前咋网上仿照别人写过一个,但是不知道原理, 今天看到了一篇写的不错,收藏了. 先来看看效果: 可以看到数据有100个(0-99),奇数和偶数分类显示,并给每类数据加了一个头 这里写图片描述 可以看到数据有100个(0-99),奇数和偶数分类显示,并给每类数据加了一个头 步骤: ①在布局文件中添加ListView组件 <RelativeLayout

ANDROID_MARS学习笔记_S04_008_用Listview、自定义adapter显示返回的微博数据

一.简介 运行结果 二.代码1.xml(1)activity_main.xml 1 <?xml version="1.0" encoding="utf-8"?> 2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 3 android:orientation="vertical" 4 android:layout_

Android学习笔记(十)——ListView的使用(上)

//此系列博文是<第一行Android代码>的学习笔记,如有错漏,欢迎指正! ListView绝对可以称得上是 Android中最常用的控件之一,ListView允许用户通过手指上下滑动的方式将屏幕外的数据滚动到屏幕内,同时屏幕上原有的数据则会滚动出屏幕. 一.ListView的简单用法: 1)新建一个ListView: 1 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

Android学习笔记(四二):SQLite、ListView、ContextMenu

继续上一个例子,结合ListView中对SQLite进行操作. 通过CursorAdapter在ListView中的数据呈现 在上一个例子中,我们可以对SQLite中的数据库进行增删改查,将数据读到游标Cursor中,然后一一读出.在Android中可以通过CursorAdapter直接将数据映射到ListView中,如下处理: public class Chapter22Test1 extends ListActivity{    private SQLiteDatabase  db = nu