Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/gitfrandu4/android-tab-layout
TabLayout & ViewPager2
https://github.com/gitfrandu4/android-tab-layout
Last synced: 6 days ago
JSON representation
TabLayout & ViewPager2
- Host: GitHub
- URL: https://github.com/gitfrandu4/android-tab-layout
- Owner: gitfrandu4
- Created: 2022-10-16T23:18:01.000Z (about 2 years ago)
- Default Branch: main
- Last Pushed: 2022-10-17T16:20:08.000Z (about 2 years ago)
- Last Synced: 2023-12-09T19:42:39.081Z (about 1 year ago)
- Language: Kotlin
- Size: 853 KB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# TabLayout & ViewPager2
El ViewPager2 es una versión mejorada del viewpager normal y lo han creado para hacer más simple de
implementar.## Inplementación:
### Implementación 1/3
El siguiente código corresponde al componente en sí, habría que añadirlo a un fragmento o bien a un
activity.Para nuestro ejemplo lo ponemos en el `activity_main.xml`
```xml
```
### Implementación 2/3
El siguiente paso es crear un adapter para decir que fragments queremos utilizar en nuestra vista,
en este caso lo podemos hacer directamente en el Activity, yo lo pondré en el `onCreate()`. También
asignamos el apdapter al viewpager2.```kotlin
// val myViewPager2 = findViewById(R.id.viewpager2)
// val myTabLayout = findViewById(R.id.tablayout)
val myViewPager2: ViewPager2 = binding.viewpager2
val myTabLayout: TabLayout = binding.tablayoutval adapter = object : FragmentStateAdapter(this) {
override fun getItemCount(): Int {
return 3
}// Aquí es donde abriremos un fragment cuando se pulse en uno de los tabs
override fun createFragment(position: Int): Fragment {
if (position == 0) {
return BlueFragment()
}if (position == 1) {
return RedFragment()
}return GreenFragment()
}}
myViewPager2.adapter = adapter
```### Implementación 3/3
Por último faltaría asignar los nombres de los tabs, que con el ViewPager2 se hace de la siguiente
forma:```kotlin
myViewPager2.adapter = adapter
// Cont. paso 3:
TabLayoutMediator(myTabLayout, myViewPager2) { tab, position ->
when(position) {
0 -> {
tab.text = "Inicio"
tab.icon = ContextCompat.getDrawable(this, R.drawable.ic_baseline_book_24)
}
1 -> {
tab.text = "Rojo"
tab.icon = ContextCompat.getDrawable(this, R.drawable.ic_baseline_book_24)
}
2 -> {
tab.text = "verde"
tab.icon = ContextCompat.getDrawable(this, R.drawable.ic_baseline_book_24)
}
}
}.attach()
```## Práctica
Replicar el Tab Layout de la aplicación móvil de Facebook: https://github.com/gitfrandu4/android-ex-tabs-facebook