2013-04-02 35 views
6

Izgara görünümünde 30 resim var (her satırda 3 resim). Kullanıcı 20. görüntüyü seçip bir sonraki ekrana gidip geri dönerse o konuma odaklanmak istiyorum. Kod için aşağıdaki satırı kullandım, ilk 8 satır için çalışıyor ama son 2 satırda kaydırma yapmıyor. Lütfen yardım et.Kılavuz görünümü nasıl kaydırılır?

gridview.setSelection(position); 
gridview.requestFocusFromTouch(); 
gridview.setSelection(position); 

Teşekkür

cevap

13

Bunun nedeni, görünümünüzün bağdaştırıcınızda yeniden kullanılacağıdır. görünümünüzü zorunda ise

public class ImageAdapter extends BaseAdapter { 
    private Context context; 
    private final String[] someprivatevariable; 

    public ImageAdapter(Context context, String[] mobileValues) { 
     // Your boring constructor 
    } 

    public View getView(int position, View convertView, ViewGroup parent) { 

     LayoutInflater inflater = (LayoutInflater) context 
      .getSystemService(Context.LAYOUT_INFLATER_SERVICE); 

     View gridView; 

      // REUSE VIEW IF NOT NULL CODE 
     if (convertView == null) { 
        ..... 
        ..... 
        you generally create your view here 
     } else { 
      gridView = (View) convertView; 
     } 

     return gridView; 
    } 
} 

kodunu birleştirmek Bu değeri

int index = gridview.getFirstVisiblePosition(); 

kaydederek scrolltoposition ve benim için çalıştı

gridview.smoothScrollToPosition(int index) 
+0

Teşekkür .. – Monali

+0

@lalitab B ama smoothScrollToPosition (indeks) orada ICS.Is herhangi bir yolu için çalışmıyor ICS'de kullanmak için Lütfen Advance'da teşekkür edin. –

+0

@Lalith B Pürüzsüz bir kaydırmayı nasıl yapacağınızı biliyor musunuz? Izgara görünümünde> 1000 öğem var ve smoothScroll bir süre alıyor. – Agata

6

bu .I bu sizin için çalışacaktır umut gibi Sen Somthing deneyebilirsiniz ..

seçimi bu konumunu belirlemeye

int index = gridview.getFirstVisiblePosition(); 

tasarruf yapmak olur

Ve ne zaman gelmek gridview'e geri döndüğünüzde, bu uygulamayı deneyebilirsiniz (Bu

gridview.smoothScrollToPosition(int index) 
0

çözümü ile değerini geri yükleyebilirsiniz sonra oldu kullanmamaya Monali ve Sreedev'den (Teşekkür ederim Monali ve Sreedev):

private int gridviewVerticalPositionWhenThumbnailTapped; 

... sonra app

// save vertical position of gridview screen, will use to re-find this location if user follows a usre and gridview gets redrawn 
gridviewVerticalPositionWhenThumbnailTapped = gridview.getFirstVisiblePosition(); 

... cevap için

// scroll gridview to vertical position pre user tap follow     
gridview.setSelection(gridviewVerticalPositionWhenThumbnailTapped); 
İlgili konular