修改调整
This commit is contained in:
@@ -0,0 +1,98 @@
|
||||
using UnityEngine;
|
||||
using FairyGUI;
|
||||
|
||||
public class PullToRefreshMain : MonoBehaviour
|
||||
{
|
||||
GComponent _mainView;
|
||||
GList _list1;
|
||||
GList _list2;
|
||||
|
||||
void Awake()
|
||||
{
|
||||
Application.targetFrameRate = 60;
|
||||
Stage.inst.onKeyDown.Add(OnKeyDown);
|
||||
|
||||
UIObjectFactory.SetPackageItemExtension("ui://PullToRefresh/Header", typeof(ScrollPaneHeader));
|
||||
}
|
||||
|
||||
void Start()
|
||||
{
|
||||
_mainView = this.GetComponent<UIPanel>().ui;
|
||||
|
||||
_list1 = _mainView.GetChild("list1").asList;
|
||||
_list1.itemRenderer = RenderListItem1;
|
||||
_list1.SetVirtual();
|
||||
_list1.numItems = 1;
|
||||
_list1.scrollPane.onPullDownRelease.Add(OnPullDownToRefresh);
|
||||
|
||||
_list2 = _mainView.GetChild("list2").asList;
|
||||
_list2.itemRenderer = RenderListItem2;
|
||||
_list2.SetVirtual();
|
||||
_list2.numItems = 1;
|
||||
_list2.scrollPane.onPullUpRelease.Add(OnPullUpToRefresh);
|
||||
}
|
||||
|
||||
void RenderListItem1(int index, GObject obj)
|
||||
{
|
||||
GButton item = obj.asButton;
|
||||
item.title = "Item " + (_list1.numItems - index - 1);
|
||||
}
|
||||
|
||||
void RenderListItem2(int index, GObject obj)
|
||||
{
|
||||
GButton item = obj.asButton;
|
||||
item.title = "Item " + index;
|
||||
}
|
||||
|
||||
void OnPullDownToRefresh()
|
||||
{
|
||||
ScrollPaneHeader header = (ScrollPaneHeader)_list1.scrollPane.header;
|
||||
if (header.ReadyToRefresh)
|
||||
{
|
||||
header.SetRefreshStatus(2);
|
||||
_list1.scrollPane.LockHeader(header.sourceHeight);
|
||||
|
||||
//Simulate a async resquest
|
||||
Timers.inst.Add(2, 1, (object param) =>
|
||||
{
|
||||
_list1.numItems += 5;
|
||||
|
||||
//Refresh completed
|
||||
header.SetRefreshStatus(3);
|
||||
_list1.scrollPane.LockHeader(35);
|
||||
|
||||
Timers.inst.Add(2, 1, (object param2) =>
|
||||
{
|
||||
header.SetRefreshStatus(0);
|
||||
_list1.scrollPane.LockHeader(0);
|
||||
});
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
void OnPullUpToRefresh()
|
||||
{
|
||||
GComponent footer = (GComponent)_list2.scrollPane.footer;
|
||||
|
||||
footer.GetController("c1").selectedIndex = 1;
|
||||
_list2.scrollPane.LockFooter(footer.sourceHeight);
|
||||
|
||||
//Simulate a async resquest
|
||||
Timers.inst.Add(2, 1, (object param) =>
|
||||
{
|
||||
_list2.numItems += 5;
|
||||
|
||||
//Refresh completed
|
||||
footer.GetController("c1").selectedIndex = 0;
|
||||
_list2.scrollPane.LockFooter(0);
|
||||
});
|
||||
}
|
||||
|
||||
void OnKeyDown(EventContext context)
|
||||
{
|
||||
if (context.inputEvent.keyCode == KeyCode.Escape)
|
||||
{
|
||||
Application.Quit();
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user