2013-05-13 1 views
1

Я хотел иметь изображение lazy Загрузка в моем ListView. Я положил изображения в ViewPager, а затем также установить CirclePageIndicator для ViewPager:Сброс CirclePageIndicator library

public void fetchDrawableOnThread(final ViewPager viewPager, final CirclePageIndicator indicator) {  

     final Handler handler = new Handler() { 
      @Override 
      public void handleMessage(Message message) { 
       ImagePagerAdapter adapter = new ImagePagerAdapter((Drawable[]) message.obj); 
       viewPager.setAdapter(adapter); 
       indicator.setViewPager(viewPager); 
      } 
     }; 

     Thread thread = new Thread() { 
      @Override 
      public void run() { 

       Drawable[] drawables = fetchDrawables(); 

       Message message = handler.obtainMessage(1, drawables); 
       handler.sendMessage(message); 
      } 
     }; 
     thread.start(); 
    } 

Это мой пользовательский класс адаптер в основной деятельности:

private class MultiAdapter extends ArrayAdapter<String> { 


    public MultiAdapter(Context context, ArrayList<String> mStrings) { 
     super(context, R.layout.list_main, mStrings); 
    } 

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

     View row; 

     if (convertView == null) { 
      LayoutInflater inflater = getLayoutInflater(); 
      row = inflater.inflate(R.layout.list_main, parent, false); 
     } else 
      row = convertView; 

     ViewPager viewPager = (ViewPager) row.findViewById(R.id.pager); 
     CirclePageIndicator indicator = (CirclePageIndicator)row.findViewById(R.id.indicator); 

     if(scroll_is_idle) 
      drawableMng.fetchDrawableOnThread(viewPager, indicator); 
     else { 
      viewPager.setAdapter(null); 
     } 

     return row; 
    } 
} 

В моем методе GetView, я хочу set viewPager adapter to null, when the scroll is not in idle mode, что создает проблему в библиотеке PageIndicator (nullPointerException). Вы знаете, как я могу сбросить параметр PageIndicator, чтобы избежать этой проблемы?

ответ

0

Я знаю, что эта логика не может быть хорошим:

if(scroll_is_idle) 
     drawableMng.fetchDrawableOnThread(viewPager, indicator); 
else 
     viewPager.setAdapter(null); 

Но кстати это сделало проблему в методе OnDraw в ViewPageIndicator библиотеке, с nullPoniterException.

Я решить мою проблему редактирования OnDraw и добавить mViewPager.getAdapter() == null условию:

@Override 
    protected void onDraw(Canvas canvas) { 
     super.onDraw(canvas); 

     if (mViewPager == null || mViewPager.getAdapter() == null) { 
      return; 
     } 
+0

Может ли быть добавлен к главной библиотеке? @JakeWharton – Ali

 Смежные вопросы

  • Нет связанных вопросов^_^