TabLayout Activity in FragmentLayout with RecyclerView template for android studio
These instructions will get you a copy of the project up and running on your local machine.
- Before you begin to the installation, you need to install Android Studio.
- in your android studio project you must add this in your
build.gradle(app)
depedencies
dependencies {
...
implementation 'com.android.support:design:28.0.0'
...
}
- and implement dataBinding in your
build.gradle(app)
android
android {
...
dataBinding {
enabled true
}
...
}
- Clone or download this repo
- Copy folder
TabActivityInFragmentWithRecyclerTemplate
to
for windows user:
{ANDROID_STUDIO_LOCATION}/plugins/android/lib/templates/activities/
for mac user:
/Applications/Android Studio.app/Contents/plugins/android/lib/templates/activities/
- open Android Studio (if you already opened android studio, restart it)
- right click on a package that you want to create the template in and select it from the
New
menu, as below:
- You will then be prompted to fill in the variables see the example below:
- You will see some error code, that's because you must
import
some code before you can continue. - if you found error
Unresolved reference SingleLiveEvent
then you must create a class namedSingleLiveEvent.kt
here is the code
class SingleLiveEvent<T> : MutableLiveData<T>() {
private val pending = AtomicBoolean(false)
@MainThread
override fun observe(owner: LifecycleOwner, observer: Observer<T>) {
if (hasActiveObservers()) {
Log.w(TAG, "Multiple observers registered but only one will be notified of changes.")
}
// Observe the internal MutableLiveData
super.observe(owner, Observer<T> { t ->
if (pending.compareAndSet(true, false)) {
observer.onChanged(t)
}
})
}
@MainThread
override fun setValue(t: T?) {
pending.set(true)
super.setValue(t)
}
/**
* Used for cases where T is Void, to make calls cleaner.
*/
@MainThread
fun call() {
value = null
}
companion object {
private const val TAG = "SingleLiveEvent"
}
}
- if the error has gone, you must add this in your
androidManifest.xml
if this is your first activity, than use this code
<manifest ...>
<application ...>
<activity android:name="{name of your activity}">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
but if there is another activity existed use this code
<manifest ...>
<application ...>
<activity android:name="{name of your activity}"></activity>
</application>
</manifest>
- You can modify the code as you like.
to run your app. you can use your android device or use the emulator. just click this icon
- Anang Kurniawan - Initial work - AnangKur