2012-06-11 8 views
0

아래 두 개의 텍스트 뷰가있는 갤러리 위젯을 사용하고 있습니다.Android - TextView로 이상한 동작 갤러리

나는 dinamically 텍스트 뷰 값을 변경하는 onItemSelectedListener를 추가했습니다 :

mGallery.setOnItemSelectedListener(new OnItemSelectedListener() { 
     @Override 
     public void onItemSelected(AdapterView<?> arg0, View arg1, 
       int position, long arg3) { 
      TextView titleView= (TextView) findViewById(R.id.titleView); 
      TextView descriptionView= (TextView) findViewById(R.id.descriptionView); 
      titleView.setText(title[position]); 
      descriptionView.setText(description[position]);   
    } 

하지만 갤러리에 플립 때, 문제가있는 것입니다. 애니메이션이 유동적이지 않습니다. "setText"문을 제거하면 제대로 작동합니다. Android 4.0에서만이 문제가 발생했습니다.

해결 방법이 있습니까?

+0

setOnItemSelectedListener가 항상 호출됩니다. 이것이 목표를 달성하는 유일한 방법일까요? –

+0

다른 해결책을 모릅니다. 어떻게 변경할 수 있습니까? – CeccoCQ

답변

0

나는 같은 이슈가 있었다. 나의 의견으로는 갤러리에있는 버그. 나는 400 밀리 초 (스냅 백의 기간) 지연된 업데이트를 게시함으로써 일종의 hack'ish 방식으로 해결했다. 그리고 setCallbackDuringFling을 false로 설정하면 멈추기 전에 실행되지 않습니다.

mGallery.setCallbackDuringFling (false); 

mGallery.setOnItemSelectedListener(new OnItemSelectedListener() { 
    @Override 
    public void onItemSelected(AdapterView<?> arg0, View arg1, 
      int position, long arg3) { 

    mGallery.postDelayed(new Runnable() { 

     @Override 
     public void run() { 
       TextView titleView= (TextView) findViewById(R.id.titleView); 
       TextView descriptionView= (TextView) findViewById(R.id.descriptionView); 
       titleView.setText(title[position]); 
       descriptionView.setText(description[position]); 
     } 
    }, 400); 

}