Code example for ScrollView

Methods: offsetDescendantRectToMyCoordsgetMaxScrollAmount, getScrollY, isFocused

0
        return mTempRect.top;
    } 
 
    private int getBottomWithinScrollView(View descendant) {
        descendant.getDrawingRect(mTempRect);
        mScrollView.offsetDescendantRectToMyCoords(descendant, mTempRect);
        return mTempRect.bottom;
    } 
 
    @MediumTest 
    public void testPreconditions() { 
        assertTrue("top button should be shorter than max scroll amount",
                mTopButton.getHeight() <
                mScrollView.getMaxScrollAmount());
        assertTrue("bottom button should be further than max scroll amount off screen",
                getTopWithinScrollView(mBottomButton)- mScrollView.getBottom() > mScrollView.getMaxScrollAmount());
    } 
 
    @MediumTest 
    public void testPanTopButtonOffScreenLosesFocus() { 
        sendKeys(KeyEvent.KEYCODE_DPAD_DOWN);
 
        assertEquals("scroll view should be scrolled by the max amount for one "
                + "arrow navigation", 
                mScrollView.getMaxScrollAmount(),
                mScrollView.getScrollY());
 
        assertTrue("top button should be off screen",
                getBottomWithinScrollView(mTopButton) < mScrollView.getScrollY());
 
        assertFalse("top button should have lost focus",
                mTopButton.isFocused());
 
        assertTrue("scroll view should be focused", mScrollView.isFocused());
    } 
 
    @MediumTest 
    public void testScrollDownToBottomButton() throws Exception { 
        final int screenBottom = mScrollView.getScrollY() + mScrollView.getHeight();