Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

NavigatorHelper onSelected &onDeselected 多次调用 #1

Closed
lsp19880926 opened this issue Jul 8, 2016 · 5 comments
Closed

NavigatorHelper onSelected &onDeselected 多次调用 #1

lsp19880926 opened this issue Jul 8, 2016 · 5 comments
Labels

Comments

@lsp19880926
Copy link

请问一下 NavigatorHelper 中的mNavigatorScrollListener.onSelected(safePosition); 和mNavigatorScrollListener.onDeselected(i);可以去掉么?在onPageSelected中已经调用过。

@hackware1993
Copy link
Owner

不能去掉的,这是为了保证在极端情况下指示器的显示状态正确,比如:你的指示器是可编辑的,显示在A界面,你在B界面编辑了指示器并返回到A界面(你可以想象一下今日头条的频道编辑),此时,原有的PositionData肯定不合法了,如果在合法的PositionData再次生成之前收到了onPageSelect或是onPageScroll回调,这时候去处理就显得没意义。所以我在CommonNavigator.preparePositioinData中去手动调了这三个回调,确保状态正确。同时,如果你当前位于ViewPager的C页,你调用ViewPager.setCurrentItem(C)是不会收到onPageSelected回调的,只会收到onPageScroll(C,0.0f,0),此时我也将这个处理成onPageSelect,也是为了确保状态正确

@lsp19880926
Copy link
Author

噢。。这样啊,我这边是在onPageSlect里对文字大小颜色做了改变,导致了 标题会在多次调用的时候闪烁。

@hackware1993
Copy link
Owner

改字体大小确实有问题,主要是内部没保存哪些Item该调用onDeselected,所以每次都循环调用,后面会做个记录,只对需要调用onDeselected的item调用

@hackware1993
Copy link
Owner

@lsp19880926 这个问题已解决,你再试试改变字体大小

@KylinTian
Copy link

compile 'com.github.hackware1993:MagicIndicator:1.5.0'
这个版本,问题还是存在的
onPageSelected()方法循环调用,形成死循环

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

3 participants