2010-12-11 2 views
0

Вот мой макет XML. Я добавляю больше строк в таблицу динамически.Android Scrollview: как определить начало и конец 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> 

Я хочу реализовать пейджинг с scrollview. Если пользователь пытается прокрутить назад или вперед, я хочу сделать предыдущие страницы и запросы следующей страницы. Как это сделать? Любой намек будет оценен. Благодарю.

ответ

0

Вот грязный способ решить эту проблему

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

ACTION_DOWN событие обработки следующей страницы и ACTION_MOVE событие обработки на предыдущей странице. Я проверяю, находится ли текущий Y почти в конце или в начале, а затем действует. Это не чисто, но один способ заставить его работать.

Смежные вопросы