我在NavigationView中创建了一个RecyclerView,其自定义的第一项与ListView的addHeaderView()相当.在该标题布局的底部,我放置了一个EditText,以便我可以过滤掉下面的列表.
我想要做的是一直向上滚动RecyclerView,直到EditText成为最上面的项目,只要EditText获得焦点.但是,如果我的项目数量足够小以至于无法填充NavigationView的整个高度,则RecyclerView会拒绝一直向上滚动,从而显示除EditText之外的更多标题.作为一个附加问题,即使列表足够大,一旦我开始过滤列表项,它仍会向下滚动.
即使我没有足够的物品来填充视图的高度,我怎么能强制我的RecyclerView仍然一直向上滚动,以便我的标题的其余部分不会偷看?
这是我想要实现的目标的可视化:
_______________
| HEADER LINE 1 |
| HEADER LINE 2 |
| HEADER LINE 3 |
| ------------- |
| Search box |
| ------------- |
| List item 1 |
| List item 2 |
| List item 3 |
---------------
Run Code Online (Sandbox Code Playgroud)
当我专注于搜索框时的预期行为:
_______________
| ------------- |
| Search box | <- becomes the topmost item. I can already achieve this
| ------------- | with RecyclerView.smoothScrollBy(dx, dy)
| List item 1 | except when …Run Code Online (Sandbox Code Playgroud)