2010-12-11 6 views
0

Voici ma mise en page XML. J'ajoute dynamiquement plus de lignes dans une table.Android Scrollview: Comment détecter début et fin de scrollview

<?xml version="1.0" encoding="utf-8"?> 
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android" 
      xmlns:myapp="http://schemas.android.com/apk/res/com.tweets" 
      android:id="@+id/screen" 
      android:layout_width="fill_parent" 
      android:layout_height="fill_parent" 
      android:orientation="vertical" 
      android:background="#FFFFFF"> 

    <TableLayout xmlns:android="http://schemas.android.com/apk/res/android" 
       android:layout_width="fill_parent" 
       android:layout_height="fill_parent" 
       android:id="@+id/main" 
       android:background="#FFFFFF"> 

     <TableRow android:id="@+id/TableRow01" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content"> 

      <TextView android:id="@+id/TLocView01" 
         android:layout_width="wrap_content" 
         android:layout_height="wrap_content" 
         android:textSize="15px" 
         android:textStyle="bold" 
         android:textColor="#000000" 
         android:text="FatWallet Tweets:"> 
      </TextView> 

     </TableRow> 
    </TableLayout> 
</ScrollView> 

Je veux implémenter le paging avec scrollview. Si l'utilisateur essaie de faire défiler vers l'arrière ou vers l'avant, je souhaite faire des demandes de page précédente et suivante. Comment faire ça? Tout indice sera apprécié. Merci.

Répondre

0

est ici une façon sale pour résoudre ce problème

tl = (TableLayout) findViewById(R.id.main); 

    tl.setOnTouchListener(new OnTouchListener() { 
     public boolean onTouch(View v, MotionEvent event) { 
      int y = v.getHeight(); 
      int y1 = (int) event.getY(); 

      switch (event.getAction()) { 
      case MotionEvent.ACTION_DOWN: { 
       if (y1 + 50 >= y & more) { 
        //System.out.println("ACTION_DOWN " + bpg); 
        more(); 

       } 
       break; 
      } 

      case MotionEvent.ACTION_UP: { 
       if (y1 - 50 <= 100 & bpg > 1) { 
        //System.out.println("ACTION_UP"); 
        less(); 

       } 
       break; 
      } 
      case MotionEvent.ACTION_MOVE: { 
       //System.out.println("ACTION_MOVE " + bpg); 
       if (y1 - 50 <= 100 & bpg > 1) { 
        //System.out.println("ACTION_UP"); 
        less(); 

       } 
       break; 
      } 
      } 

      //System.out.println("Test " + y + " " + y1); 
      return true; 
     } 
    }); 

événement ACTION_DOWN gère la page suivante et l'événement ACTION_MOVE gère la page précédente. Je vérifie si le Y actuel est presque à la fin ou au début alors n'agis que. Ce n'est pas propre mais une façon de le faire fonctionner.