Android 具有SwipeRefreshLayout的RecyclerView工作不一致
我知道类似的问题被问了很多次,但它不能解决我的问题。所以我在这里问。我有一个全新布局的回收视图。我用过这个代码Android 具有SwipeRefreshLayout的RecyclerView工作不一致,android,android-layout,android-recyclerview,Android,Android Layout,Android Recyclerview,我知道类似的问题被问了很多次,但它不能解决我的问题。所以我在这里问。我有一个全新布局的回收视图。我用过这个代码 recyclerView1.addOnScrollListener(new RecyclerView.OnScrollListener() { @Override public void onScrollStateChanged(RecyclerView recyclerView, int newState) {
recyclerView1.addOnScrollListener(new RecyclerView.OnScrollListener() {
@Override
public void onScrollStateChanged(RecyclerView recyclerView, int newState) {
//super.onScrollStateChanged(recyclerView, newState);
try {
int firstPos = mLinearLayoutManager.findFirstCompletelyVisibleItemPosition();
if (refreshLayout != null) {
if (firstPos > 0) {
refreshLayout.setEnabled(false);
} else {
activity.refreshLayout.setEnabled(true);
if (recyclerView1.getScrollState() == 1)
if (activity.refreshLayout.isRefreshing())
recyclerView1.stopScroll();
}
}
} catch (Exception e) {
}
}
});
区分recyclerView和swipe refresh布局的滚动。但是我已经用这个添加了一个标题到这个recyclerView中[。现在recyclerView中的标题高度太大了,所以在小型设备中
int firstPos = mLinearLayoutManager.findFirstCompletelyVisibleItemPosition();
当只有一半的标题可见时返回0。并且它正在启用swiperefreshlayout。因此我无法在recyclerView中看到整个标题。有人能帮我解决这个问题吗
谢谢试试这个,希望对你有所帮助。downvoter你能告诉我downvote的原因吗?这段代码做什么?不要只是复制粘贴代码,添加一点解释。
LinearLayoutManager llm = new LinearLayoutManager(getActivity());
refreshLayout.setOnRefreshListener(new PullRefreshLayout.OnRefreshListener() {
@Override
public void onRefresh() {
refreshLayout.setRefreshing(true);
// start refresh
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
refreshLayout.setRefreshing(false);
}
}, 5000);
}
});
recList.addOnScrollListener(new RecyclerView.OnScrollListener() {
@Override
public void onScrollStateChanged(RecyclerView recyclerView, int newState) {
super.onScrollStateChanged(recyclerView, newState);
}
@Override
public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
refreshLayout.setEnabled(llm.findFirstCompletelyVisibleItemPosition() == 0);
}
});