Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
门心叼龙
flexbox-layout
提交
132251fe
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 搜索 >>
提交
132251fe
编写于
12月 20, 2016
作者:
T
Takeshi Hagikura
提交者:
Takeshi Hagikura
1月 17, 2017
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Implement a dialog to modify the flex item atrributes when an view holder is clicked (#165)
上级
5f20868b
变更
6
隐藏空白更改
内联
并排
Showing
6 changed file
with
35 addition
and
24 deletion
+35
-24
app/src/main/java/com/google/android/flexbox/FlexItemChangedListener.java
...a/com/google/android/flexbox/FlexItemChangedListener.java
+0
-2
app/src/main/java/com/google/android/flexbox/FlexItemChangedListenerImpl.java
...m/google/android/flexbox/FlexItemChangedListenerImpl.java
+2
-1
app/src/main/java/com/google/android/flexbox/RecyclerViewFragment.java
...java/com/google/android/flexbox/RecyclerViewFragment.java
+3
-4
app/src/main/java/com/google/android/flexbox/recyclerview/FlexItemAdapter.java
.../google/android/flexbox/recyclerview/FlexItemAdapter.java
+16
-11
app/src/main/java/com/google/android/flexbox/recyclerview/FlexItemViewHolder.java
...ogle/android/flexbox/recyclerview/FlexItemViewHolder.java
+12
-4
flexbox/src/main/java/com/google/android/flexbox/FlexboxLayoutManager.java
...java/com/google/android/flexbox/FlexboxLayoutManager.java
+2
-2
未找到文件。
app/src/main/java/com/google/android/flexbox/FlexItemChangedListener.java
浏览文件 @
132251fe
...
...
@@ -16,8 +16,6 @@
package
com.google.android.flexbox
;
import
com.google.android.flexbox.FlexItem
;
/**
* A listener that listens to the change of a flex item
*/
...
...
app/src/main/java/com/google/android/flexbox/FlexItemChangedListenerImpl.java
浏览文件 @
132251fe
...
...
@@ -17,6 +17,7 @@
package
com.google.android.flexbox
;
import
android.view.View
;
import
android.view.ViewGroup
;
/**
* Default implementation for the {@link FlexItemChangedListener}.
...
...
@@ -32,6 +33,6 @@ public class FlexItemChangedListenerImpl implements FlexItemChangedListener {
@Override
public
void
onFlexItemChanged
(
FlexItem
flexItem
,
int
viewIndex
)
{
View
view
=
mFlexContainer
.
getFlexItemAt
(
viewIndex
);
view
.
setLayoutParams
((
FlexboxLayout
.
LayoutParams
)
flexItem
);
view
.
setLayoutParams
((
ViewGroup
.
LayoutParams
)
flexItem
);
}
}
app/src/main/java/com/google/android/flexbox/RecyclerViewFragment.java
浏览文件 @
132251fe
...
...
@@ -52,13 +52,13 @@ public class RecyclerViewFragment extends Fragment {
RecyclerView
recyclerView
=
(
RecyclerView
)
view
.
findViewById
(
R
.
id
.
recyclerview
);
final
FlexboxLayoutManager
flexboxLayoutManager
=
new
FlexboxLayoutManager
();
final
MainActivity
activity
=
(
MainActivity
)
getActivity
();
recyclerView
.
setLayoutManager
(
flexboxLayoutManager
);
final
FlexItemAdapter
adapter
=
new
FlexItemAdapter
();
final
FlexItemAdapter
adapter
=
new
FlexItemAdapter
(
activity
,
flexboxLayoutManager
);
recyclerView
.
setAdapter
(
adapter
);
final
MainActivity
activity
=
(
MainActivity
)
getActivity
();
final
FragmentHelper
fragmentHelper
=
new
FragmentHelper
(
activity
,
flexboxLayoutManager
);
fragmentHelper
.
initializeViews
();
FloatingActionButton
addFab
=
(
FloatingActionButton
)
activity
.
findViewById
(
R
.
id
.
add_fab
);
if
(
addFab
!=
null
)
{
...
...
@@ -70,7 +70,6 @@ public class RecyclerViewFragment extends Fragment {
ViewGroup
.
LayoutParams
.
WRAP_CONTENT
);
fragmentHelper
.
setFlexItemAttributes
(
lp
);
adapter
.
addItem
(
lp
);
// TODO: Specify index?
adapter
.
notifyDataSetChanged
();
}
});
...
...
app/src/main/java/com/google/android/flexbox/recyclerview/FlexItemAdapter.java
浏览文件 @
132251fe
...
...
@@ -17,9 +17,12 @@
package
com.google.android.flexbox.recyclerview
;
import
com.google.android.apps.flexbox.R
;
import
com.google.android.flexbox.FlexItemChangedListenerImpl
;
import
com.google.android.flexbox.FlexItemClickListener
;
import
com.google.android.flexbox.FlexboxLayoutManager
;
import
android.support.v7.app.AppCompatActivity
;
import
android.support.v7.widget.RecyclerView
;
import
android.view.Gravity
;
import
android.view.LayoutInflater
;
import
android.view.View
;
import
android.view.ViewGroup
;
...
...
@@ -32,14 +35,16 @@ import java.util.List;
*/
public
class
FlexItemAdapter
extends
RecyclerView
.
Adapter
<
FlexItemViewHolder
>
{
private
List
<
RecyclerView
.
LayoutParams
>
mLayoutParams
;
private
AppCompatActivity
mActivity
;
p
ublic
FlexItemAdapter
()
{
this
(
new
ArrayList
<
RecyclerView
.
LayoutParams
>());
}
p
rivate
FlexboxLayoutManager
mLayoutManager
;
private
List
<
RecyclerView
.
LayoutParams
>
mLayoutParams
;
public
FlexItemAdapter
(
List
<
RecyclerView
.
LayoutParams
>
flexItems
)
{
mLayoutParams
=
flexItems
;
public
FlexItemAdapter
(
AppCompatActivity
activity
,
FlexboxLayoutManager
layoutManager
)
{
mActivity
=
activity
;
mLayoutManager
=
layoutManager
;
mLayoutParams
=
new
ArrayList
<>();
}
@Override
...
...
@@ -51,10 +56,10 @@ public class FlexItemAdapter extends RecyclerView.Adapter<FlexItemViewHolder> {
@Override
public
void
onBindViewHolder
(
FlexItemViewHolder
holder
,
int
position
)
{
holder
.
mTextView
.
setText
(
String
.
valueOf
(
position
+
1
)
);
holder
.
mTextView
.
setBackgroundResource
(
R
.
drawable
.
flex_item_background
);
holder
.
mTextView
.
setGravity
(
Gravity
.
CENTER
);
holder
.
mTextView
.
setLayoutParams
(
mLayoutParams
.
get
(
position
));
int
adapterPosition
=
holder
.
getAdapterPosition
(
);
holder
.
itemView
.
setOnClickListener
(
new
FlexItemClickListener
(
mActivity
,
new
FlexItemChangedListenerImpl
(
mLayoutManager
),
adapterPosition
)
);
holder
.
bindTo
(
mLayoutParams
.
get
(
position
));
}
public
void
addItem
(
RecyclerView
.
LayoutParams
lp
)
{
...
...
app/src/main/java/com/google/android/flexbox/recyclerview/FlexItemViewHolder.java
浏览文件 @
132251fe
...
...
@@ -19,19 +19,27 @@ package com.google.android.flexbox.recyclerview;
import
com.google.android.apps.flexbox.R
;
import
android.support.v7.widget.RecyclerView
;
import
android.view.Gravity
;
import
android.view.View
;
import
android.widget.TextView
;
/**
* ViewHolder implementation for a flex item.
*/
public
class
FlexItemViewHolder
extends
RecyclerView
.
ViewHolder
{
class
FlexItemViewHolder
extends
RecyclerView
.
ViewHolder
{
TextView
mTextView
;
private
TextView
mTextView
;
public
FlexItemViewHolder
(
View
itemView
)
{
FlexItemViewHolder
(
View
itemView
)
{
super
(
itemView
);
mTextView
=
(
TextView
)
itemView
.
findViewById
(
R
.
id
.
textview
);
}
void
bindTo
(
RecyclerView
.
LayoutParams
layoutParams
)
{
int
adapterPosition
=
getAdapterPosition
();
mTextView
.
setText
(
String
.
valueOf
(
adapterPosition
+
1
));
mTextView
.
setBackgroundResource
(
R
.
drawable
.
flex_item_background
);
mTextView
.
setGravity
(
Gravity
.
CENTER
);
mTextView
.
setLayoutParams
(
layoutParams
);
}
}
flexbox/src/main/java/com/google/android/flexbox/FlexboxLayoutManager.java
浏览文件 @
132251fe
...
...
@@ -461,10 +461,10 @@ public class FlexboxLayoutManager extends RecyclerView.LayoutManager implements
mAnchorInfo
.
reset
();
updateAnchorInfoForLayout
(
state
,
mAnchorInfo
);
// Unlike the FlexboxLayout, the order attribute is not supported, we don't calculate
d
the
// Unlike the FlexboxLayout, the order attribute is not supported, we don't calculate the
// order attribute because preparing the order attribute requires all
// view holders to be inflated at least once, which is inefficient if the number of items
// is large
// i
n the adapter i
s large
resolveLayoutDirection
();
updateLayoutStateToFillEnd
(
mAnchorInfo
);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录