Kotlin - Renderer RecyclerView Adapter (Advance Recyclerview)


Renderer RecyclerView Adapter

   

Articles & Presentations



Examples

AllView RendererView BinderLoad More
Render RecyclerView
CompositeViewStateDiff UtilPayload

Wiki

Gradle

dependencies {
    compile 'com.github.vivchar:RendererRecyclerViewAdapter:2.8.0'
}

BETA

maven { url 'https://oss.sonatype.org/content/repositories/snapshots/' }

dependencies {
    compile 'com.github.vivchar:RendererRecyclerViewAdapter:2.9.0-SNAPSHOT'
}

Usage

  • Step 1: Add the ViewModel interface to your UI model
public class SomeModel implements ViewModel {
 ...
}
  • Step 2: Create your item_layout
<LinearLayout ... >
 <TextView android:id = "@+id/title" ... />
 <ImageView android:id = "@+id/image" ... />
 <Button android:id = "@+id/button" ... />
 <CustomView android:id = "@+id/custom" ... />
</LinearLayout>
  • Step 3: Initialize Adapter and register the ViewBinder
mRecyclerViewAdapter = new RendererRecyclerViewAdapter();

mRecyclerViewAdapter.registerRenderer(new ViewBinder<>(
 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();
*/

Release notes

Migrations

Projects using RendererRecyclerViewAdapter

  • Camfrog: Group Video Chat;
  • Paltalk: Free group video calls & chat rooms;
  • DeskRoll: Gives you secure remote access to computers;
  • MedikTest: Preparation for accreditation of doctors;
  • KFormMaster: Easily build generic forms with minimal effort;
  • KDV Online: Online store of KDV, Russian producer of snacks and confectionery products, whose goods are well known and beloved not only in Russia but also well beyond.
Send me a pull request with modified README.md to get a shoutout!

Communication

  • If you need help, please use Stack Overflow.
  • If you found a bug, please open Issue.
  • If you have a feature request, please open Issue.
  • If you want to contribute, please submit Pull request.

Post a Comment

Previous Post Next Post