
在 RecycleView 中 实现 FooterItem 三种状态,实现的方式是替换 item 根布局内的内容。
发现在根布局是 CardView 时,替换高度不一致的内容时,高度不会跟着变化,会被掩盖掉一部分,不知道这样的情况,是要对 item 重绘还是整个 RecycleView 重绘? [图片和网站背景太相似了,大家可以选择图片看出问题]

还有个疑问。因为在 onCreateViewHolder 需要 parent,不然item无法match_parent ,现在加载 cardview 的方式就是用了 xml 。不知道有没有用代码 new 一个的方式?
mFooterLayout = (CardView) ViewUtils.inflate(parent, R.layout.item_comment_cardview); ViewUtils : public static View inflate(ViewGroup parent, int layoutId) { if (layoutId <= 0) { return null; } return LayoutInflater.from(parent.getContext()).inflate(layoutId, parent, false); } 1 xingda920813 Jan 11, 2017 替换完 FooterView 后,对 Footer 所在的 Item 进行 RecyclerVew.Adapter.notifyItemChanged(int position) 试试? |
2 xingda920813 Jan 11, 2017 为什么 “因为在 onCreateViewHolder 需要 parent ,不然 item 无法 match_parent ,现在加载 cardview 的方式就是用了 xml ”? 我封装的 RecyclerView 的加载更多的 FooterView 就是 Java 代码生成的。似乎 ViewGroup.LayoutParams.MATCH_PARENT 可以正常工作,纵向列表的情况下, FooterView 的宽度是可以匹配到跟 RecyclerView 一样宽的。不解。 |
3 xingda920813 Jan 11, 2017 https://github.com/xingda920813/SimpleRecyclerView/blob/master/simplerecyclerview/src/main/java/com/xdandroid/simplerecyclerview/Adapter.java 看一下 onCreateViewHolder 方法,只要给 new 出来的 ViewGroup 设一个 LayoutParams 就好了。 |
4 xuhaoyangx OP @xingda920813 如果是四大布局你设置这些没问题,也能 match_parent,但是 CardView 不行,设置了 LayoutParams 还是不能撑开 |
5 xuhaoyangx OP |
6 xingda920813 Jan 12, 2017 |
7 xingda920813 Jan 12, 2017 |
8 xuhaoyangx OP @xingda920813 局对布局不行,等下我也试下你这个 |
9 xuhaoyangx OP 绝对布局 |
10 xingda920813 Jan 12, 2017 但是很想不通, CardView 本身就是一个 FrameLayout, 而且在 Android 5.0 以上, 相当于并没有重写 onMeasure 方法 (onMeasure() = super.onMeasure()), 为什么直接用 CardView 作为 itemView 就不行. |
11 xuhaoyangx OP @xingda920813 我也是这么觉得,很恶心的玩意 |
12 xuhaoyangx OP @xingda920813 addView(view,params)这个函数的问题~,这里添加 params 没有作用 。 |
13 lee015 Jan 13, 2017 via Android ViewUtils.inflate 里面 layoutId 判断,不等于 0 就是有效的 id 了。 |
14 xuhaoyangx OP @lee015 啥? |