я выяснил, что CirclePageIndicator.java есть ошибка, она не хочет, чтобы заполнить выделенную страницу круг, когда я первый начинаю свой фрагмент, но когда я просто коснуться моего ViewPager, каждая вещь это нормально ... ошибка была там:
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
mCurrentPage = position;
mPageOffset = positionOffset; // error here
invalidate();
if (mListener != null) {
mListener.onPageScrolled(position, positionOffset, positionOffsetPixels);
}
}
positionOffset возвращаемого Nan, когда я инициализируюсь мои взгляды в OnCreate, в результате чего OnDraw() не обратить заполнение выбранного моего круга
решение является для проверки значения positionOffset перед назначением его, как:
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
mCurrentPage = position;
mPageOffset = (positionOffset > 0) ? positionOffset : 0;
invalidate();
if (mListener != null) {
mListener.onPageScrolled(position, positionOffset, positionOffsetPixels);
}
}
Я бы предположил его, потому что индикатор принимает его на странице 0 для начала. –
После добавления новых элементов в адаптер, а также изменения положения на экране? Не думайте так ... –
Действительно здорово, что вы получили эту работу. Я пытался понять это на некоторое время. Было бы интересно понять механику немного больше. – abriggs