Symbian^3 Kinetic Scrolling (Chinese)
文章信息
Kinetic Scrolling已经是N97与N97mini设备上已有的功能,现在,该功能已经成为Symbian平台上的一部分。该功能是基于Open Source ODE的,而且任何使用Avkon框架的应用,在不修改代码的情况下就可以获得该功能。下面会给出使用kinetic Scrolling功能的Avkon控件的例子。在所有的S60 Avkon控件中,只要有滚动条功能的控件,现在都拥有Kinetic Scrolling功能,包括lists、grids、forms和option menus。
但是这里有两条规则需要遵循:
1.不要对任何滚动条控件的状态做假设,不要主动去查询该控件的状态,而是等待该控件回调通知你的应用。
Bad Code:
void CMyContainer::HandlePointerEventL(const TPointerEvent& aEvent)
{
TInt oldCurrentItem = iListBox->CurrentItemIndex();
...
CCoeControl::HandlePointerEventL(aEvent);//pass event to child controls
if(iListBox->CurrentItemIndex() != oldCurrentItem)
{
...
}
...
}
Good Code:
void CMyContainer::HandleListBoxEventL(CEikListBox* aListBox, TListBoxEvent aEventType)
{
...
if(iListBox->CurrentItemIndex() != iOldCurrentItem)
{
...
}
...
}
2. 当需要继承Avkon控件的时候,确保不要被pointer events而妨碍。如果你必须重写HandlePointerEventL函数,那么一定也要调用该子类方法。
Example:
File:KineticScrolling.zip


(no comments yet)