Comment masquer TextView et n'afficher que lors d'un défilement

J'ai un ScrollView et GridView en elle, je veux mettre un TextView sur le dessus de la GridView, mais il ne doit pas être vu jusqu'à ce que l'utilisateur fait défiler pour elle. J'ai pensé à des marges négatives, mais je ne pouvais pas trouver une solution comment utiliser de défilement pour obtenir cette vue lorsque sur la marge négative.

Donc fondamentalement :
Le seul vu chose doit être gridView, mais lorsque l'utilisateur est sur le dessus de la gridView et tire vers le haut, il faut voir un TextView.

edit:
le point entier de ce que je veux faite pull-to-refresh de cette. Je ne veux pas utiliser populaire sur internet, bibliothèque, car il ne fonctionne pas comme je veux.

EDIT 2:

J'ai eu la réponse, mais il n'est pas entièrement ce que je cherche à atteindre.
Je veux de la douceur, de montrer caché TextView (tout comme dans le pull-to-refresh solutions) et setVisibility rend rapide et sans smoothnes.
Voici mon code :

XML :

<com.tas.android.quick.ui.controls.LockableScrollView
        android:id="@+id/scrollView"
        android:fillViewport="true"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent" >

        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:orientation="vertical" >

            <TextView 
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:id="@+id/pullText"
                android:text="some text" />

            <com.tas.android.quick.ui.controls.ExpandableGridView
                android:id="@+id/gridview"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_centerInParent="true"
                android:clipToPadding="false"
                android:drawSelectorOnTop="true"
                android:fadingEdge="none"
                android:gravity="top"
                android:horizontalSpacing="@dimen/image_grid_hspacing"
                android:listSelector="@drawable/selector_shadow"
                android:numColumns="@integer/grid_num_cols"
                android:paddingBottom="50dp"
                android:scrollbarAlwaysDrawVerticalTrack="false"
                android:scrollbars="none"
                android:scrollingCache="true"
                android:smoothScrollbar="false"
                android:stretchMode="columnWidth"
                android:verticalSpacing="@dimen/image_grid_vspacing"
                android:visibility="visible" />
        </LinearLayout>
    </com.tas.android.quick.ui.controls.LockableScrollView>

et code:

textview = (TextView) findViewById(R.id.pullText);
        textview.setVisibility(View.VISIBLE);

        scrollView = (LockableScrollView) findViewById(R.id.scrollView);

        scrollView.setScrollingEnabled(false);

...

gridView.setOnScrollListener(new OnScrollListener() {
                        @Override
                        public void onScrollStateChanged(AbsListView view, int scrollState) {
                            switch(scrollState) {
                            case 2: //SCROLL_STATE_FLING 
                                //hide button here
                                textview.setVisibility(View.VISIBLE);
                                break;

                            case 1: //SCROLL_STATE_TOUCH_SCROLL 
                                //hide button here
                                textview.setVisibility(View.GONE);
                                break;

                            case 0: //SCROLL_STATE_IDLE 
                                //show button here
                                textview.setVisibility(View.GONE);
                                break;
                            }
                        }

                        @Override
                        public void onScroll(AbsListView view, int firstVisibleItem,
                                int visibleItemCount, int totalItemCount) {
                                }
                            }
                        }
                    });
  • où est votre cas par défaut? de l'interrupteur par défaut: //afficher le bouton de btn.setVisibility(View.VISIBLE); break;
  • voir mon switch cas. vous avez manqué le défaut de commutateur
  • J'ai oublié à ce sujet, maintenant c'est ajouté