Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
门心叼龙
flexbox-layout
提交
dbdf32ee
F
flexbox-layout
项目概览
门心叼龙
/
flexbox-layout
通知
2
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
F
flexbox-layout
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
dbdf32ee
编写于
4月 24, 2017
作者:
T
Takeshi Hagikura
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Support smooth scroll. (#270)
The same SmoothScroller as other built-in LayoutMangers can be used.
上级
b3710eec
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
29 addition
and
2 deletion
+29
-2
flexbox/src/main/java/com/google/android/flexbox/FlexboxLayoutManager.java
...java/com/google/android/flexbox/FlexboxLayoutManager.java
+29
-2
未找到文件。
flexbox/src/main/java/com/google/android/flexbox/FlexboxLayoutManager.java
浏览文件 @
dbdf32ee
...
...
@@ -20,11 +20,13 @@ import static android.support.v7.widget.LinearLayoutManager.INVALID_OFFSET;
import
static
android
.
support
.
v7
.
widget
.
RecyclerView
.
NO_POSITION
;
import
android.content.Context
;
import
android.graphics.PointF
;
import
android.graphics.Rect
;
import
android.os.Parcel
;
import
android.os.Parcelable
;
import
android.support.v4.view.ViewCompat
;
import
android.support.v7.widget.LinearLayoutManager
;
import
android.support.v7.widget.LinearSmoothScroller
;
import
android.support.v7.widget.OrientationHelper
;
import
android.support.v7.widget.RecyclerView
;
import
android.util.AttributeSet
;
...
...
@@ -41,7 +43,8 @@ import java.util.List;
* {@link RecyclerView} and offers the same capabilities of measure/layout its children
* as the {@link FlexboxLayout}.
*/
public
class
FlexboxLayoutManager
extends
RecyclerView
.
LayoutManager
implements
FlexContainer
{
public
class
FlexboxLayoutManager
extends
RecyclerView
.
LayoutManager
implements
FlexContainer
,
RecyclerView
.
SmoothScroller
.
ScrollVectorProvider
{
private
static
final
String
TAG
=
"FlexboxLayoutManager"
;
...
...
@@ -482,12 +485,27 @@ public class FlexboxLayoutManager extends RecyclerView.LayoutManager implements
public
List
<
FlexLine
>
getFlexLinesInternal
()
{
return
mFlexLines
;
}
// The end of methods from FlexContainer
@Override
public
void
updateViewCache
(
int
position
,
View
view
)
{
mViewCache
.
put
(
position
,
view
);
}
// The end of methods from FlexContainer
// ScrollVectorProvider method
@Override
public
PointF
computeScrollVectorForPosition
(
int
targetPosition
)
{
if
(
getChildCount
()
==
0
)
{
return
null
;
}
int
firstChildPos
=
getPosition
(
getChildAt
(
0
));
int
direction
=
targetPosition
<
firstChildPos
?
-
1
:
1
;
if
(
isMainAxisDirectionHorizontal
())
{
return
new
PointF
(
0
,
direction
);
}
else
{
return
new
PointF
(
direction
,
0
);
}
}
@Override
public
RecyclerView
.
LayoutParams
generateDefaultLayoutParams
()
{
...
...
@@ -1627,6 +1645,15 @@ public class FlexboxLayoutManager extends RecyclerView.LayoutManager implements
requestLayout
();
}
@Override
public
void
smoothScrollToPosition
(
RecyclerView
recyclerView
,
RecyclerView
.
State
state
,
int
position
)
{
LinearSmoothScroller
smoothScroller
=
new
LinearSmoothScroller
(
recyclerView
.
getContext
());
smoothScroller
.
setTargetPosition
(
position
);
startSmoothScroll
(
smoothScroller
);
}
/**
* @return true if LayoutManager will recycle its children when it is detached from
* RecyclerView.
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录