안녕하세요. 안드로이드 공부를 하고 있는 학생입니다.

 

구글링해도 도통 문제를 해결하지 못해서 질문을 드리는데요...ㅠㅠ;

 

ViewPager 구현시 오른쪽 방향으로 빠르게 터치 모션을 주면 왼쪽 포지션이 스크롤이 되어야되는데

 

오른쪽 포지션이 ← 방향으로 스크롤이 됩니다. 똑같이 반대방향은 빠르게 터치모션을 줘도

 

아무런 문제가 없습니다. 제가 소스를 잘 못 짠건지, ViewPager의 자체버그인건지.. 도와주세요 ㅠㅠ

 

public class ViewPagerSample extends Activity {
 private ViewPager vp;

 /** Called when the activity is first created. */
 @Override
 public void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.main);

  vp = (ViewPager) findViewById(R.id.pager);
  vp.setAdapter(new ViewpagerAdapter(this));
 }

 private class ViewpagerAdapter extends PagerAdapter implements
   View.OnClickListener {
  private static final int ROOM_NUM = 0xf8000;

  private int _addRoomNum = 0;
  private int _addImageNum = 0;
  private Context handler;
  private LinearLayout mainLayout;

  public ViewpagerAdapter(Context c) {
   super();
   handler = c;
  }

  @Override
  public Object instantiateItem(View pager, int position) {

   RoomSettings(position);

   ((ViewPager) pager).addView(mainLayout, 0);
   return mainLayout;
  }

  private void RoomSettings(int position) {
   mainLayout = new LinearLayout(handler);
   mainLayout.setOrientation(LinearLayout.HORIZONTAL);

   if (position == 0) {
    _addRoomNum = 0;
    _addImageNum = 0;
   } else {
    _addRoomNum = (3 * position) + (position);
    _addImageNum = (3 * position) + (position);
   }

   for (int i = 0; i < 4; i++) {
    Bitmap _chatRoomImage = Bitmap.createScaledBitmap(BitmapFactory
      .decodeResource(handler.getResources(), R.raw.g1iu1
        + _addImageNum), 133, 200, false);

    ImageView Rooms = new ImageView(handler); // 이미지뷰 생성
    Rooms.setId(ROOM_NUM + _addRoomNum);
    Rooms.setImageBitmap(_chatRoomImage);
    Rooms.setOnClickListener(this);
    _addImageNum++;
    _addRoomNum++;
    mainLayout.addView(Rooms);
   }
  }

  public void onClick(View v) {
   // TODO Auto-generated method stub
   for (int i = 0; i < 40; i++) {
    if (v.getId() == ROOM_NUM + i) {
     Toast.makeText(handler, i + 1 + "", 100).show();
    }
   }
  }

  @Override
  public int getCount() {
   return 10;
  }

  @Override
  public void destroyItem(View pager, int position, Object view) {
   ((ViewPager) pager).removeView((View) view);
  }

  @Override
  public boolean isViewFromObject(View view, Object obj) {
   return view == obj;
  }

  @Override
  public void finishUpdate(View arg0) {
  }

  @Override
  public void restoreState(Parcelable arg0, ClassLoader arg1) {
  }

  @Override
  public Parcelable saveState() {
   return null;
  }

  @Override
  public void startUpdate(View arg0) {
  }

 }
}