FileDocCategorySizeDatePackage
InternalSelectionScroll.javaAPI DocAndroid 1.5 API2632Wed May 06 22:41:08 BST 2009com.example.android.apis.view

InternalSelectionScroll

public class InternalSelectionScroll extends android.app.Activity
Demonstrates how a well behaved view with internal selection ({@link InternalSelectionView}) can cause its parent {@link android.widget.ScrollView} to scroll to keep the internally interesting rectangle on the screen. {@link InternalSelectionView} achieves this by calling {@link android.view.View#requestRectangleOnScreen} each time its internal selection changes. {@link android.widget.ScrollView}, in turn, implements {@link android.view.View#requestRectangleOnScreen} thereby acheiving the result. Note that {@link android.widget.ListView} also implements the method, so views that call {@link android.view.View#requestRectangleOnScreen} that are embedded within either {@link android.widget.ScrollView}s or {@link android.widget.ListView}s can expect to keep their internal interesting rectangle visible.

Fields Summary
Constructors Summary
Methods Summary
protected voidonCreate(android.os.Bundle savedInstanceState)

        super.onCreate(savedInstanceState);

        ScrollView sv = new ScrollView(this);
        ViewGroup.LayoutParams svLp = new ScrollView.LayoutParams(
                ViewGroup.LayoutParams.FILL_PARENT,
                ViewGroup.LayoutParams.WRAP_CONTENT);

        LinearLayout ll = new LinearLayout(this);
        ll.setLayoutParams(svLp);
        sv.addView(ll);

        InternalSelectionView isv = new InternalSelectionView(this, 10);
        int screenHeight = getWindowManager().getDefaultDisplay().getHeight();
        LinearLayout.LayoutParams llLp = new LinearLayout.LayoutParams(
                ViewGroup.LayoutParams.FILL_PARENT,
                2 * screenHeight);  // 2x screen height to ensure scrolling
        isv.setLayoutParams(llLp);
        ll.addView(isv);
        
        setContentView(sv);