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

添加tl_textSelectSize属性,设置选中字体大小 #372

Open
wants to merge 1 commit into
base: develop
Choose a base branch
from

Conversation

yy197133
Copy link

No description provided.

@lylelqc
Copy link

lylelqc commented May 14, 2019

亲测有效,感谢大佬

@LLQQHH
Copy link

LLQQHH commented Jun 12, 2019

当我这样设置的时候
TIM截图20190612122719
会出现bug
TIM截图20190612122558
下标和文字没有居中对齐,大概知道原因是,因为动画太早执行,导致那个时候View.getLeft,是还未更新时候的位置,导致下标对齐的是旧的位置,但是不知道如何解决

@BickerLiu
Copy link

当我这样设置的时候
TIM截图20190612122719
会出现bug
TIM截图20190612122558
下标和文字没有居中对齐,大概知道原因是,因为动画太早执行,导致那个时候View.getLeft,是还未更新时候的位置,导致下标对齐的是旧的位置,但是不知道如何解决

当我这样设置的时候
TIM截图20190612122719
会出现bug
TIM截图20190612122558
下标和文字没有居中对齐,大概知道原因是,因为动画太早执行,导致那个时候View.getLeft,是还未更新时候的位置,导致下标对齐的是旧的位置,但是不知道如何解决

因为setTextSize会requestLayout,requestLayout看源码可以知道是post一个Runnable去执行的,所以会出现在设置动画的时候还没有完成requestLayout,导致动画获取的getLeft()还是没有改完字体大小前的left,因此,会出现上面的问题。
现在最简单的解决办法,改一下setCurrentTab:
public void setCurrentTab(int currentTab) { mLastTab = this.mCurrentTab; this.mCurrentTab = currentTab; updateTabSelection(currentTab); if (mFragmentChangeManager != null) { mFragmentChangeManager.setFragments(currentTab); } //这里需要post一下,以便seTextSize之后对布局重新排列完成后再进行动画 //否则还是拿的老布局的getLeft,指示器动画无法居中 post(new Runnable() { @Override public void run() { if (mIndicatorAnimEnable) { calcOffset(); } else { invalidate(); } } }); }

@zhengpengzheng
Copy link

亲测有效,感谢大佬
我这么没用,求gradle地址

@BickerLiu
Copy link

亲测有效,感谢大佬
我这么没用,求gradle地址

这个改动之后使用的时候还是发现了bug,calcOffset()这个方法拿的参数是全局的,但是由于改成了异步的刷新,导致了在调用calcOffset()时参数已经不是之前的数据了,这会导致动画的异常,所以我在后面又进行了二次修改,具体修改内容可以去我fork的分支上去查看,
地址是:https://github.com/BickerLiu/FlycoTabLayout
时间比较急写的比较糙,如果有好的建议,欢迎随时提供给我

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

Successfully merging this pull request may close these issues.

5 participants