All Projects → yogacp → android-viewbinding

yogacp / android-viewbinding

Licence: MIT license
A simple library to simplify the viewbinding delegation in your Android Application

Programming Languages

kotlin
9241 projects

Projects that are alternatives of or similar to android-viewbinding

SunnyBeach
阳光沙滩APP
Stars: ✭ 60 (-52.38%)
Mutual labels:  viewbinding
Stars
An android application build with a clean architecture approach and Star wars API
Stars: ✭ 54 (-57.14%)
Mutual labels:  viewbinding
Imomoe
樱花动漫第三方安卓Android客户端,不含广告,免费开源,目的是学习Android开发。Discord:https://discord.gg/MyaRtRGEzr
Stars: ✭ 996 (+690.48%)
Mutual labels:  viewbinding
MusicPlayer
Android music player example.
Stars: ✭ 20 (-84.13%)
Mutual labels:  viewbinding
Superhero-App
🦸🏻‍♂️🦹🏻‍♀️Superhero app built with Kotlin, ViewModel, LiveData, ViewBinding, Room, and Hilt
Stars: ✭ 27 (-78.57%)
Mutual labels:  viewbinding
Newsster
Android App using Paging3, Hilt, Coroutines, Flow, Jetpack, MVVM architecture.
Stars: ✭ 147 (+16.67%)
Mutual labels:  viewbinding
BindingExtension
Android ViewBinding extension to provide simpler usage in Activity, Fragment and ViewHolder.
Stars: ✭ 26 (-79.37%)
Mutual labels:  viewbinding
Android-Assignment
This assignment gives you basically a post list and its detail with comments.🚀
Stars: ✭ 32 (-74.6%)
Mutual labels:  viewbinding
ParkingDemo
Taipei City Parking Lot Information Query System Demo
Stars: ✭ 18 (-85.71%)
Mutual labels:  viewbinding
RecyclerAdapter
简单易懂的 RecyclerView adapter 封装
Stars: ✭ 27 (-78.57%)
Mutual labels:  viewbinding
Foodium
It simply loads Posts data from API and stores it in persistence storage (i.e. SQLite Database). Posts will be always loaded from local database. Remote data (from API) and Local data is always synchronized.
Stars: ✭ 1,940 (+1439.68%)
Mutual labels:  viewbinding
ApolloRickAndMorty
just a side project to try out GraphQL and Dagger Hilt with Clean architecture and MVVM
Stars: ✭ 28 (-77.78%)
Mutual labels:  viewbinding
libbra
A currency tracker app demonstration. It refreshes currency list every single second based on the main currency. In addition to that, main currency is selectable.
Stars: ✭ 45 (-64.29%)
Mutual labels:  viewbinding

Android ViewBinding Kotlin

Android ViewBinding Library

Version Downloads

A simple library to simplify viewbinding delegation in your Android Application

Adding dependencies

Add this to your build.gradle:

allprojects {
	repositories {
		...
		maven { url 'https://jitpack.io' }
	}
}

enable viewbinding in your app/build.gradle:

android {
    ....
    buildFeatures {
        viewBinding true
    }
}

Add the dependencies in your app/build.gradle:

dependencies {
    ....
    implementation 'com.github.yogacp:android-viewbinding:x.x.x'
}

How to use the library

Create your regular XML layout. For example, create activity_sample.xml:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:gravity="center">

    <TextView
        android:id="@+id/tvTitle"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/app_name"
        android:layout_marginBottom="16dp"/>

    <Button
        android:id="@+id/btnSample"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/app_name"
        android:textStyle="bold"/>

        ....
</LinearLayout>

And use it in your Activity, just extend an binding variable that extend to your generated binding view and add by viewBinding() at the end:

class SampleActivity : AppCompatActivity() {

    private val binding: ActivitySampleBinding by viewBinding()

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)

        binding.tvTitle.text = getString(R.string.sample_title)

        binding.btnSample.setOnClickListener {
            Toast.makeText(this, "Sample Button Clicked", Toast.LENGTH_SHORT).show()
        }
        ....
    }
}

And here if you want to use it in your Fragment. For example, you create a xml layout with name fragment_sample.xml:

class SampleFragment : Fragment(R.layout.fragment_sample) {

    private val binding: FragmentSampleBinding by viewBinding()

    override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
        super.onViewCreated(view, savedInstanceState)

        binding.tvFragmentTitle.text = getString(R.string.sample_fragment_title)
        binding.btnFragmentSample.setOnClickListener {
            Toast.makeText(context, "Sample Fragment Button Clicked", Toast.LENGTH_SHORT).show()
        }

        ....
    }
}

And here if you want to use it in your BottomSheetDialogFragment. For example, you create a xml layout with name bottomsheet_sample.xml:

class SampleBottomSheetDialogFragment : BottomSheetDialogFragment() {

    private val binding: BottomsheetSampleBinding by viewBinding()

    override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View {
        return binding.root //return root from binding delegation
    }

    override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
        super.onViewCreated(view, savedInstanceState)

        binding.tvFragmentTitle.text = getString(R.string.sample_fragment_title)
        binding.btnClose.setOnClickListener {
            Toast.makeText(context, "Sample BottomSheetDialog Button Clicked", Toast.LENGTH_SHORT).show()
        }

        ....
    }
}

And here if you want to use it in your DialogFragment. For example, you create a xml layout with name dialog_sample.xml:

class SampleDialogFragment : DialogFragment() {

    private val binding: DialogSampleBinding by viewBinding()

    override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View {
        return binding.root //return root from binding delegation
    }

    override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
        super.onViewCreated(view, savedInstanceState)

        binding.tvTitle.text = getString(R.string.sample_fragment_title)
        binding.btnClose.setOnClickListener {
            Toast.makeText(context, "Sample Dialog Button Clicked", Toast.LENGTH_SHORT).show()
        }

        ....
    }
}

If you using proguard, add this line to your proguard-rules.pro.

#ViewBinding
-keep class * implements androidx.viewbinding.ViewBinding {
    public static *** bind(android.view.View);
    public static *** inflate(android.view.LayoutInflater);
}
Happy coding :)
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].