TabLayout,design包的控件;
对于设置TabLayout里面的Tab位置,楼主在网上查了一下,
一般是结合Viewpage来设置,
或者是写算法,算长度;
看了一下TabLayout的有关方法,楼主觉得这个方法挺好使的;
在此贡献一下:
/**
* Set the scroll position of the tabs. This is useful for when the tabs are being displayed as
* part of a scrolling container such as {@link android.support.v4.view.ViewPager}.
* <p>
* Calling this method does not update the selected tab, it is only used for drawing purposes.
*
* @param position current scroll position
* @param positionOffset Value from [0, 1) indicating the offset from {@code position}.
* @param updateSelectedText Whether to update the text's selected state.
*/
public void setScrollPosition(int position, float positionOffset, boolean updateSelectedText) {
setScrollPosition(position, positionOffset, updateSelectedText, true);
}
用有道翻译了一下;
设置滚动标签的位置。这是有用的,当标签被显示为
*部分滚动容器如{ @link android.support.v4.view.ViewPager }。
* < p >
*调用该方法不会更新选中的选项卡,这只是用于绘画。
* @param position 当前滚动的位置
* @param positionOffset值(0,1)指示} { @code位置的偏移量。
* @param updateSelectedText是否更新文本的选择状态。
* /
然后使用的时候,并不能这么玩;
position :0;起始值;
positionOffset:10;从0开始,往右边数第几个-1;tablayout是从0开始算的;
updateSelectedText true;就是tab是否变颜色,是否有下划线,滑过去;
正确的 上Tablayout姿势:
tablayout.setScrollPosition(0, indexTabTag, true);
这个楼主在项目中的使用场景,用的EventBus切换fragment之后,再延迟1秒,再发送切换Tablayout的Tab;
所以会有一点延迟;