我希望在滚动到某个位置后显示TextView
上的视图(示例RecyclerView
)(例如:3),所以我使用
public class HeaderItemDecoration extends RecyclerView.ItemDecoration {
@Override
public void onDrawOver(Canvas c, RecyclerView parent, RecyclerView.State state) {
super.onDrawOver(c, parent, state);
int topChildPosition = parent.getChildAdapterPosition(parent.getChildAt(0));
if(topChildPosition == 3) {
Log.i("TAG", "draw header");
TextView textView = new TextView(parent.getContext());
textView.setText("bbdasdasd");
textView.setBackgroundColor(Color.RED);
textView.layout(0, 0, 100, 100);
drawText(c, textView);
}
}
private void drawText(Canvas c, View header) {
c.save();
c.translate(0, 0);
header.draw(c);
c.restore();
}
}
和
mRecyclerView.addItemDecoration(new HeaderItemDecoration());
我工作但问题是,如果我继续滚动,TextView
将会消失。在绘制之后如何使这个视图始终可见?任何帮助或建议都将非常感激。
答案 0 :(得分:2)
只需更改if条件:
if(topChildPosition == 3) {
...
}
到:
if(topChildPosition >= 3) {
...
}
因此,如果继续向下滚动,视图将保持可见。
如果你希望它保持可见,即使你滚动回顶部,只需添加一个成员变量来记住视图是否已经显示,如果显示,继续绘制它。