2016-04-10 14 views
1

Ekranda harfleri görüntülemek ve ViewPager ile kaydırmayı etkinleştirmek istiyorum, ancak ilk harf ilk + 1 konumunda başlar.ViewPager yanlış yerde mi başlıyor?

Bu

private static int[] images = {R.drawable.a,R.drawable.b,R.drawable.c,R.drawable.d}; 
public static int position = 0; 

gibi drawables bir dizi bilgisi ve pozisyonuna göre, I ImageView

letter.setImageDrawable(getResources().getDrawable(images[position])); 

getPosition kod gösterilen görüntüyü ayarlamak

@Override 
public Fragment getItem(int position) { 
    LetterViewFragment.position = position; 
    return new LetterViewFragment(); 
} 

Şimdi ilk görünümde s İlk görünüm olarak görüntüsünü ve sağa kaydırdığımda, ikinci görüntüyü tekrar görüyorum. Ancak, ilk olarak üçüncü görüntüden geriye doğru kaydırırsam ilk resmi görüyorum.

this one gibi aynı soruna benzer benzer soruları buldum ama cevap yok.

Teşekkürler!

+0

gidip bütün sınıf göndermek için talep veya parçası –

+0

Parça için statik değişkeni neden kullanıyorsunuz? Bunun yerine, pozisyonu yapıcıya aktarabilirsiniz? İkinci olarak, tam FragmentAdapter kodunu göster –

+0

@MustansarSaeed Normalde varsayılan olmayan yapıcı kötü bir uygulama olduğundan, orijinal olarak yeni bir IŞLEME geçiriyordum, ancak yine de çalışmadı. – Stefan

cevap

1

deneyin aşağıda gibi size kodunu değiştirmek için:

letter.setImageDrawable(images[position-1]); 
1

Eğer 1. pozisyondan başlar pozisyonda ikincisi yönetmenize yardımcı olabilir bu kodu deneyin,

letter.setImageResource(images[position - 1]); 
+0

Bu, düzgün çalışmaz, çünkü bir kez üçüncü harfe ilerledikten sonra geri dönüp Null ptr istisnası atar. Ayrıca, 1'inci ve 2. giriş için ilk harfi vardır. Sorun şu ki, ilk önce ne gösterirse, o da ikinci pozisyonda. – Stefan