and14

//workspace
void snapToScreen(int whichScreen) {
// if (!mScroller.isFinished()) return;

clearVacantCache();
enableChildrenCache();

whichScreen = Math.max(0, Math.min(whichScreen, getChildCount() - 1));
int index = indexOfScreen(mCurrentGroup, mCurrentScreen);
boolean changingScreens = whichScreen != index;
//AAA
CellLayout cell = null;
if (DragLayer.isDragging()) {
if (mDragInfo != null && mDragInfo.cell != null) {
mDragInfo.cell.setVisibility(View.GONE);
}

if (changingScreens) {
if (mLauncher != null && mLauncher.getDragLayer() != null) {
mLauncher.getDragLayer().snap2ScreenWings();
}
cell = (CellLayout) getChildAt(whichScreen);
if (cell != null) {
cell.initAnimation();
}
cell = (CellLayout) getChildAt(index);
if (cell != null) {
cell.finishZoomOutAnimation();
}
}
} else {
cell = (CellLayout) getChildAt(index);
if (cell != null) {
cell.stopAnimation();
}
}
//
mNextScreen = whichScreen;

//mGroupNavi.updateFocusGroup(computeGroup(mNextScreen));
//mGroupNavi.lockGroup(true);


View focusedChild = getFocusedChild();
if (focusedChild != null && changingScreens && focusedChild == getChildAt(mCurrentScreen)) {
//focusedChild.clearFocus();
}

final int newX = whichScreen * getWidth();
final int delta = newX - mScrollX;

final int duration = Math.abs(delta) * 6 / 5;
mScroller.startScroll(mScrollX, 0, delta, 0, duration);
//mScroller.startScroll(mScrollX, 0, delta, 0, Math.abs(delta) * 2);

//final NavigationView nview = (NavigationView)mLauncher.getDrawerNavigator();
//nview.drawNavigator(correctWhichScreen(delta), duration + 790);

invalidate();

int flag = Math.max(0, Math.min(mNextScreen, getChildCount() - 1));
mCurrentGroup = computeGroup(flag);
mCurrentScreen = computeScreen(flag);

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值