A single adapter with multiple view types for the whole project
Java
1,197
278 commits
updated Feb 6, 2026
If you like this project you can show support by starring ⭐ this repository 🙏
https://github.com/vivchar/RendererRecyclerViewAdapter/wiki
dependencies {
compile 'com.github.vivchar:RendererRecyclerViewAdapter:3.0.2'
}
public class SomeModel implements ViewModel {
...
}
<LinearLayout ... >
<TextView android:id = "@+id/title" ... />
<ImageView android:id = "@+id/image" ... />
<Button android:id = "@+id/button" ... />
<CustomView android:id = "@+id/custom" ... />
</LinearLayout>
mRecyclerViewAdapter = new RendererRecyclerViewAdapter();
mRecyclerViewAdapter.registerRenderer(new ViewRenderer<>(
R.layout.item_layout,
SomeModel.class,
(model, finder, payloads) -> finder
.find(R.id.custom, (ViewProvider<CustomView>) customView -> { ... })
.setBackground(R.id.image, model.getBackground())
.setText(R.id.text, model.getText())
.setOnClickListener(R.id.button, v -> { ... })
));
mRecyclerViewAdapter.registerRenderer(...); /* you can use several types of cells */
/* Regular code:
mRecyclerView = (RecyclerView) findViewById(R.id.recycler_view);
mRecyclerView.setLayoutManager(new LinearLayoutManager(this));
mRecyclerView.setAdapter(mRecyclerViewAdapter);
mRecyclerViewAdapter.setItems(getItems());
mRecyclerViewAdapter.notifyDataSetChanged();
*/
Send me a pull request with modified README.md to get a shoutout!
Copyright 2017 Vitaly Vivchar
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
Overall
Maintained
Code review
Latest release
Releases this year
19 followers · starred Jun 2020
26 followers · starred Nov 2018
A single adapter with multiple view types for the whole project
Java
1,197
278 commits
updated Feb 6, 2026
If you like this project you can show support by starring ⭐ this repository 🙏
https://github.com/vivchar/RendererRecyclerViewAdapter/wiki
dependencies {
compile 'com.github.vivchar:RendererRecyclerViewAdapter:3.0.2'
}
public class SomeModel implements ViewModel {
...
}
<LinearLayout ... >
<TextView android:id = "@+id/title" ... />
<ImageView android:id = "@+id/image" ... />
<Button android:id = "@+id/button" ... />
<CustomView android:id = "@+id/custom" ... />
</LinearLayout>
mRecyclerViewAdapter = new RendererRecyclerViewAdapter();
mRecyclerViewAdapter.registerRenderer(new ViewRenderer<>(
R.layout.item_layout,
SomeModel.class,
(model, finder, payloads) -> finder
.find(R.id.custom, (ViewProvider<CustomView>) customView -> { ... })
.setBackground(R.id.image, model.getBackground())
.setText(R.id.text, model.getText())
.setOnClickListener(R.id.button, v -> { ... })
));
mRecyclerViewAdapter.registerRenderer(...); /* you can use several types of cells */
/* Regular code:
mRecyclerView = (RecyclerView) findViewById(R.id.recycler_view);
mRecyclerView.setLayoutManager(new LinearLayoutManager(this));
mRecyclerView.setAdapter(mRecyclerViewAdapter);
mRecyclerViewAdapter.setItems(getItems());
mRecyclerViewAdapter.notifyDataSetChanged();
*/
Send me a pull request with modified README.md to get a shoutout!
Copyright 2017 Vitaly Vivchar
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
Overall
Maintained
Code review
Latest release
Releases this year
19 followers · starred Jun 2020
26 followers · starred Nov 2018