android横向加载更多,Android RecyclerView实现水平滑动,加载更多

OnLoadMoreListener.java

import android.support.v7.widget.LinearLayoutManager;

import android.support.v7.widget.RecyclerView;

import android.util.Log;

public abstract class OnLoadMoreListener extends RecyclerView.OnScrollListener {

private LinearLayoutManager layoutManager;

private int itemCount, lastPosition, lastItemCount;

public abstract void onLoadMore();

@Override

public void onScrolled(RecyclerView recyclerView, int dx, int dy) {

if (recyclerView.getLayoutManager() instanceof LinearLayoutManager) {

layoutManager = (LinearLayoutManager) recyclerView.getLayoutManager();

itemCount = layoutManager.getItemCount();

lastPosition = layoutManager.findLastCompletelyVisibleItemPosition();

} else {

Log.e("OnLoadMoreListener", "The OnLoadMoreListener only support LinearLayoutManager");

return;

}

if (lastItemCount != itemCount && lastPosition == itemCount - 1) {

lastItemCount = itemCount;

this.onLoadMore();

}

}

}

xml

android:id="@+id/themeRecyclerView"

android:layout_width="match_parent"

android:layout_height="200dp"

android:layout_gravity="bottom"

android:orientation="horizontal" />

Activity

BookThemeAdapter adapter;

int page = 1;

private void initData() {

getDataOnline();

adapter = new BookThemeAdapter(getContext(), 0, isDownloadDefaultOne);

themeRecyclerView.setAdapter(adapter);

themeRecyclerView.setLayoutManager(new LinearLayoutManager(getContext(), LinearLayoutManager.HORIZONTAL, false));

themeRecyclerView.setOnScrollListener(new OnLoadMoreListener() {

@Override

public void onLoadMore() {

//ToastUtils.showShort("加载更多");

Log.e(TAG, "onLoadMore");

++page;

getDataOnline();

}

});

}

private void getDataOnline() {

HttpRequest2.searchBookTheme(page).subscribe(new Subscriber>() {

@Override

public void onCompleted() {

if (progress_bar != null)

progress_bar.setVisibility(View.GONE);

}

@Override

public void onError(Throwable e) {

}

@Override

public void onNext(ListResult bookThemeListResult) {

adapter.addData(bookThemeListResult.list);

adapter.notifyDataSetChanged();

}

});

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
了解了你的问题,以下是一个 Kotlin 实现横向滑动加载更多的示例代码,使用的是 SmartRefreshLayout 库中的 SmartRefreshHorizontal 组件: 在布局文件中添加 SmartRefreshHorizontal 组件: ```xml <com.scwang.smartrefresh.layout.SmartRefreshHorizontal android:id="@+id/refreshLayout" android:layout_width="match_parent" android:layout_height="wrap_content"> <androidx.recyclerview.widget.RecyclerView android:id="@+id/recyclerView" android:layout_width="match_parent" android:layout_height="wrap_content" /> </com.scwang.smartrefresh.layout.SmartRefreshHorizontal> ``` 在 Kotlin 中设置 SmartRefreshHorizontal 组件的相关属性和监听器: ```kotlin val refreshLayout = findViewById<SmartRefreshHorizontal>(R.id.refreshLayout) val recyclerView = findViewById<RecyclerView>(R.id.recyclerView) // 设置 Adapter 和 LayoutManager val adapter = MyAdapter() val layoutManager = LinearLayoutManager(this, LinearLayoutManager.HORIZONTAL, false) recyclerView.adapter = adapter recyclerView.layoutManager = layoutManager // 监听刷新加载更多事件 refreshLayout.setOnRefreshListener { // 刷新数据 adapter.refreshData() // 结束刷新 refreshLayout.finishRefresh() } refreshLayout.setOnLoadMoreListener { // 加载更多数据 adapter.loadMoreData() // 结束加载更多 refreshLayout.finishLoadMore() } ``` 其中,`MyAdapter` 是你自己实现RecyclerView Adapter,根据需要实现其中的 `refreshData()` 和 `loadMoreData()` 方法来进行数据刷新加载更多的操作。 希望这个示例代码可以帮到你。如果还有问题或需要更多帮助,请随时提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值