`
月下独酌
  • 浏览: 128547 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

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);
       
    }

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics