1684038599
所属分类:其他
开发工具:Others
文件大小:4018KB
下载次数:0
上传日期:2023-10-08 10:07:39
上 传 者:
rainjack
说明: RecyclerView嵌套ViewPager嵌套RecyclerView
(this is open source code no need pay money you can use it by free.)
文件列表:
code (0, 2023-05-14)
code\NestedRecyclerView (0, 2023-05-14)
code\NestedRecyclerView\app (0, 2023-05-14)
code\NestedRecyclerView\app\build.gradle (1342, 2023-05-14)
code\NestedRecyclerView\app\src (0, 2023-05-14)
code\NestedRecyclerView\app\src\main (0, 2023-05-14)
code\NestedRecyclerView\app\src\main\java (0, 2023-05-14)
code\NestedRecyclerView\app\src\main\java\com (0, 2023-05-14)
code\NestedRecyclerView\app\src\main\java\com\yu (0, 2023-05-14)
code\NestedRecyclerView\app\src\main\java\com\yu\nested (0, 2023-05-14)
code\NestedRecyclerView\app\src\main\java\com\yu\nested\recyclerview (0, 2023-05-14)
code\NestedRecyclerView\app\src\main\java\com\yu\nested\recyclerview\demo (0, 2023-05-14)
code\NestedRecyclerView\app\src\main\java\com\yu\nested\recyclerview\demo\PullRefreshFragment.java (5191, 2023-05-14)
code\NestedRecyclerView\app\src\main\java\com\yu\nested\recyclerview\demo\NormalFragment.java (5796, 2023-05-14)
code\NestedRecyclerView\app\src\main\java\com\yu\nested\recyclerview\demo\AdTabFragment.java (2093, 2023-05-14)
code\NestedRecyclerView\app\src\main\java\com\yu\nested\recyclerview\demo\OutTabFragment.java (1670, 2023-05-14)
code\NestedRecyclerView\app\src\main\java\com\yu\nested\recyclerview\demo\RecyclerNestedRecyclerView.java (2106, 2023-05-14)
code\NestedRecyclerView\app\src\main\java\com\yu\nested\recyclerview\MainActivity.java (1977, 2023-05-14)
code\NestedRecyclerView\app\src\main\java\com\yu\nested\recyclerview\base (0, 2023-05-14)
code\NestedRecyclerView\app\src\main\java\com\yu\nested\recyclerview\base\SingleRecyclerAdapter.java (4261, 2023-05-14)
code\NestedRecyclerView\app\src\main\java\com\yu\nested\recyclerview\base\RecyclerViewPager.java (1366, 2023-05-14)
code\NestedRecyclerView\app\src\main\java\com\yu\nested\recyclerview\base\BaseNestedFragment.java (7793, 2023-05-14)
code\NestedRecyclerView\app\src\main\java\com\yu\nested\recyclerview\base\RelatedTabLayout.java (757, 2023-05-14)
code\NestedRecyclerView\app\src\main\java\com\yu\nested\recyclerview\base\LoadMoreAdapter.java (8126, 2023-05-14)
code\NestedRecyclerView\app\src\main\AndroidManifest.xml (720, 2023-05-14)
code\NestedRecyclerView\app\src\main\res (0, 2023-05-14)
code\NestedRecyclerView\app\src\main\res\mipmap-xxhdpi (0, 2023-05-14)
code\NestedRecyclerView\app\src\main\res\mipmap-xxhdpi\ic_launcher_round.png (11873, 2023-05-14)
code\NestedRecyclerView\app\src\main\res\mipmap-xxhdpi\ic_launcher.png (7909, 2023-05-14)
code\NestedRecyclerView\app\src\main\res\layout (0, 2023-05-14)
code\NestedRecyclerView\app\src\main\res\layout\fragment_out_tab.xml (1379, 2023-05-14)
code\NestedRecyclerView\app\src\main\res\layout\activity_main.xml (1972, 2023-05-14)
code\NestedRecyclerView\app\src\main\res\layout\fragment_pull_refresh.xml (1528, 2023-05-14)
code\NestedRecyclerView\app\src\main\res\layout\view_footer.xml (831, 2023-05-14)
code\NestedRecyclerView\app\src\main\res\layout\item_test.xml (603, 2023-05-14)
code\NestedRecyclerView\app\src\main\res\layout\fragment_normal.xml (1085, 2023-05-14)
code\NestedRecyclerView\app\src\main\res\layout\fragment_ad_tab.xml (2393, 2023-05-14)
code\NestedRecyclerView\app\src\main\res\layout\fragment_test.xml (390, 2023-05-14)
code\NestedRecyclerView\app\src\main\res\layout\view_tab.xml (684, 2023-05-14)
code\NestedRecyclerView\app\src\main\res\mipmap-hdpi (0, 2023-05-14)
... ...
RecyclerView嵌套ViewPager嵌套RecyclerView
====
NestedRecyclerView
## 功能描述
1. 支持嵌套ViewPager嵌套RecyclerView,理论上也支持直接嵌套RecyclerView,不过感觉没什么意义,就不再提供demo
2. 一个NestedRecyclerView类处理所有滚动逻辑,不需要对ViewPager内的RecyclerView做特殊处理
3. 支持第三方的下拉刷新库,例如SmartRefreshLayout
4. 提供RecyclerView内的tab栏吸顶【适合简单的吸顶,以及不可操作动画吸顶,如京东app】 以及
外部传入吸顶tab栏【适合需要动态改变吸顶tab高度的场景,例如吸顶广告,可操作的吸顶栏动画,或者
吸顶栏位置有特殊要求等】
两种方式实现吸顶,具体见demo,暂不提供动画相关demo,以后看情况添加
5. 提供底部视图缓存demo,避免滑出ViewPager时卡顿的问题
## 带广告的tab示例
![demo.gif](https://upload-images.jianshu.io/upload_images/10639439-6c201deae8678aee.gif?imageMogr2/auto-orient/strip)
## 使用方法
### 新增依赖
1. 在项目的根目录gradle新增仓库如下:
```
allprojects {
repositories {
google()
jcenter()
maven { url "https://jitpack.io" }
}
}
```
2. 使用module依赖,新增依赖:
```
implementation 'com.github.liyuzero:NestedRecyclerView:2.0'
```
### 具体调用(详情见demo)
1. 布局,当做普通RecyclerView进行布局即可
```
```
1. 初始化
```
final NestedRecyclerView mNestedRecyclerView = view.findViewById(R.id.recyclerView);
//recyclerView正常初始化
mNestedRecyclerView.setLayoutManager(new LinearLayoutManager(mNestedRecyclerView.getContext()));
//底部tab栏 和 ViewPager
BottomTabView tabView = new BottomTabView(getContext());
//设置底部Tab View大小,必须!!!!!!!!!!!, 该高度一般等于NestedRecyclerView大小
mNestedRecyclerView.post(new Runnable() {
@Override
public void run() {
mBottomTabView.setViewHeight(mNestedRecyclerView.getMeasuredHeight());
}
});
mNestedRecyclerView.setAdapter(new RecyclerView.Adapter() {
if(viewType == 1) {
//一般是最后一个view是底部tab栏以及ViewPager
return new RecyclerView.ViewHolder(mBottomTabView) {
};
} else {
TextView titleView = new TextView(parent.getContext());
....
}
});
//初始化,返回值为当前 ViewPager内部 展示的 RecyclerView
mNestedRecyclerView.setChildRecyclerViewHelper(new NestedRecyclerView.ChildRecyclerViewHelper() {
@Override
public RecyclerView getCurRecyclerView() {
return mBottomTabView.getCurRecyclerView();
}
//提供外部自定义吸顶栏时需要实现的接口,方便实现各种自定义效果,例如广告展示,触摸动画等等
public View getInnerTabView() {
return null;
}
public View getOutTabView() {
return null;
}
});
//监听器
mNestedRecyclerView.addOnActionListener(new NestedRecyclerView.OnActionListener() {
@Override
public void onTabMounting(boolean isMounting) {
//吸顶状态监听
if(isMounting) {
ToastUtil.INSTANCE.showToast(mNestedRecyclerView.getContext(), "吸顶了");
}
}
@Override
public void onTabViewFirstShow() {
//tab栏首次展示出来,一般用作打点
}
});
```
近期下载者:
相关文件:
收藏者: