Project Name | Stars | Downloads | Repos Using This | Packages Using This | Most Recent Commit | Total Releases | Latest Release | Open Issues | License | Language |
---|---|---|---|---|---|---|---|---|---|---|
Mvvmlight | 1,683 | 6 years ago | 14 | Java | ||||||
A toolkit help to build Android MVVM Application | ||||||||||
Neutronium | 1,316 | 3 | 8 | 5 months ago | 16 | September 11, 2020 | 92 | mit | C# | |
🚀 Build .NET desktop applications using HTML, CSS and javascript. | ||||||||||
Android Data Binding Recyclerview | 572 | 5 years ago | 10 | apache-2.0 | Java | |||||
Using Recyclerview with the new Android Data Binding framework | ||||||||||
Android Mvvm | 437 | 5 years ago | 16 | apache-2.0 | Java | |||||
MVVM on Android using RxJava and Data Binding | ||||||||||
Rxviewmodel | 370 | 9 | 3 years ago | 24 | October 31, 2017 | 9 | mit | Swift | ||
ReactiveViewModel-esque using RxSwift | ||||||||||
Mvvmcross Samples | 328 | 4 months ago | 33 | ms-pl | C# | |||||
Tutorials and samples for MvvmCross: The .NET MVVM framework for cross-platform solutions. | ||||||||||
Android Viewmodelbinding | 312 | 6 years ago | 7 | Java | ||||||
A lightweight library aiming to speed up Android app development by leveraging the new Android Data Binding together with the Model-View-ViewModel design pattern. | ||||||||||
Tictactoe Mvvm | 238 | 4 years ago | 1 | Java | ||||||
Sample android application used to learn the Model View View Model pattern and DataBinding in Android | ||||||||||
Todolist Mvvm | 230 | 6 years ago | 3 | mit | Swift | |||||
Sample application using MVVM in Swift | ||||||||||
Mv2m | 186 | 7 years ago | 1 | apache-2.0 | Java | |||||
Android MVVM lightweight library based on Android Data Binding |
Using Recyclerview with the new Android Data Binding framework.
Just clone this repository and start playing with it! If you want to use some parts of this repository in your project read below.
classpath 'com.android.tools.build:gradle:1.5.0'
dataBinding {
enabled = true
}
Remember to use your classes and packages ;-).
<!-- layout.xml -->
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<data>
<variable
name="usersViewModel"
type="net.droidlabs.mvvmdemo.viewmodel.UsersViewModel"/>
</data>
<android.support.v7.widget.RecyclerView
android:id="@+id/activity_users_recycler"
android:scrollbars="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:items="@{usersViewModel.users}"
app:itemViewBinder="@{usersViewModel.itemViewBinder}"
/>
</layout>
// your activity
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
usersViewModel = new UsersViewModel();
usersViewModel.users.add(new SuperUserViewModel(new User("Android", "Dev")));
binding = DataBindingUtil.setContentView(this, R.layout.users_view);
binding.setUsersViewModel(usersViewModel);
binding.activityUsersRecycler.setLayoutManager(new LinearLayoutManager(this));
}
public class UsersViewModel extends BaseObservable
{
public ObservableArrayList<UserViewModel> users;
public ItemBinder<UserViewModel> itemViewBinder()
{
return new ItemBinderBase<UserViewModel>(BR.user, R.layout.item_user);
}
}
Your ViewModel (UsersViewModel in my example) should have field of ObservableArrayList
Next thing is ItemViewBinder. This class is used in BindingRecyclerViewAdapter for creating ViewHolders and it's item views bindings. In my example I've created CompositeItemBinder in order to support two different item types with separate layouts. If you want to display list with one data type you can use ItemBinderBase:
public ItemBinder<YourClass> itemViewBinder()
{
return new ItemBinderBase<YourClass>(BR.your_variable_name, R.layout.your_item_layout);
}
Please look at UsersView.java and UsersViewModel.java if something is unclear.