2012-06-16 30 views
3

我在Activity中有一個GridView,我想用scrollTo()方法將GridView滾動到特定的位置。具體而言,請滾動 scrollTo()並在OnItemClickListener()中提示Dialog,向後滾動scrollTo(),單擊PositiveButton在GridView中使用scrollTo()

如果我只點擊GridView中的項目,它會很好地工作,但如果我用手指滾動GridView後單擊項目,GridView將滾動到特定位置,然後立即向後滾動。我不知道爲什麼或如何處理它。

gv.setOnItemClickListener(new OnItemClickListener() 
    { 
     public void onItemClick(AdapterView<?> parent, View v, int position, long id) 
     { 
      gv.scrollTo(0, 200); 
      AlertDialog.Builder dilog =new AlertDialog.Builder(MainActivity.this); 
      dilog.setPositiveButton("aa", new OnClickListener(){ 

       public void onClick(DialogInterface dialog, int which) { 
        // TODO Auto-generated method stub 
        gv.scrollTo(0, 0); 
       } 

      }); 
      dilog.create().show(); 
     } 
    }); 

回答

4

GridView有一些known issuesscrollTo()。根據您的情況,有幾個workarounds,如調用smoothScrollToPosition()setSelection()

+0

當用戶的滾動完成時,應該將網格對齊到最近的位置,以便ScrollToPosition()在恢復時不會「跳躍」。 – samosaris