mirror of
https://github.com/AdrianKuta/ViewPagerDotsIndicator.git
synced 2025-04-19 23:19:02 +02:00
Updated ReadMe.md
This commit is contained in:
parent
ff7069e72f
commit
4f72ab42a1
@ -6,15 +6,19 @@ either for `ViewPager` or `ViewPager2`.
|
|||||||
|
|
||||||
## How to implement View Pager dots indicator?
|
## How to implement View Pager dots indicator?
|
||||||
|
|
||||||
|
Here is description how to implement dots indicator - full example you can find in repository above.
|
||||||
|
|
||||||
All we need are: [ViewPager][1], [TabLayout][2] and 2 drawables for
|
All we need are: [ViewPager][1], [TabLayout][2] and 2 drawables for
|
||||||
selected and default dots.
|
selected and default dots.
|
||||||
|
|
||||||
|
> Implementation for `ViewPager2` is almost the same:
|
||||||
|
> Replace `androidx.viewpager.widget.ViewPager` with `androidx.viewpager2.widget.ViewPager2`.
|
||||||
|
|
||||||
Firstly, we have to add `TabLayout` to our screen layout, and connect it
|
Firstly, we have to add `TabLayout` to our screen layout, and connect it
|
||||||
with `ViewPager`. We can do this in two ways:
|
with `ViewPager`. We can do this in two ways:
|
||||||
|
|
||||||
|
|
||||||
### Nested `TabLayout` in `ViewPager`
|
#### Nested `TabLayout` in `ViewPager`
|
||||||
|
|
||||||
```xml
|
```xml
|
||||||
<androidx.viewpager.widget.ViewPager
|
<androidx.viewpager.widget.ViewPager
|
||||||
android:id="@+id/photos_viewpager"
|
android:id="@+id/photos_viewpager"
|
||||||
@ -30,7 +34,7 @@ with `ViewPager`. We can do this in two ways:
|
|||||||
> In this case `TabLayout` will be automatically connected with
|
> In this case `TabLayout` will be automatically connected with
|
||||||
> `ViewPager`, but `TabLayout` will be next to `ViewPager`, not over it.
|
> `ViewPager`, but `TabLayout` will be next to `ViewPager`, not over it.
|
||||||
|
|
||||||
### Separate `TabLayout`
|
#### Separate `TabLayout`
|
||||||
|
|
||||||
```xml
|
```xml
|
||||||
<androidx.viewpager.widget.ViewPager
|
<androidx.viewpager.widget.ViewPager
|
||||||
@ -47,20 +51,28 @@ with `ViewPager`. We can do this in two ways:
|
|||||||
> In this case, we can put `TabLayout` anywhere, but we have to connect
|
> In this case, we can put `TabLayout` anywhere, but we have to connect
|
||||||
> `TabLayout` with `ViewPager` programmatically
|
> `TabLayout` with `ViewPager` programmatically
|
||||||
|
|
||||||
```java
|
**for `ViewPager`**
|
||||||
ViewPager pager = (ViewPager) view.findViewById(R.id.photos_viewpager);
|
```kotlin
|
||||||
PagerAdapter adapter = new PhotosAdapter(getChildFragmentManager(), photosUrl);
|
val viewPager = findViewById<ViewPager>(R.id.viewPager)
|
||||||
pager.setAdapter(adapter);
|
val tabLayout = findViewById<TabLayout>(R.id.tabLayout)
|
||||||
|
viewPager.adapter = sectionsPagerAdapter
|
||||||
TabLayout tabLayout = (TabLayout) view.findViewById(R.id.tab_layout);
|
tabLayout.setupWithViewPager(viewPager)
|
||||||
tabLayout.setupWithViewPager(pager, true);
|
```
|
||||||
|
**for `ViewPager2`**
|
||||||
|
```kotlin
|
||||||
|
val viewPager2 = findViewById<ViewPager2>(R.id.viewPager2)
|
||||||
|
val tabLayout = findViewById<TabLayout>(R.id.tabLayout)
|
||||||
|
viewPager.adapter = sectionsPagerAdapter
|
||||||
|
TabLayoutMediator(tabLayout, viewPager2) { tab, position ->
|
||||||
|
//Some implementation...
|
||||||
|
}.attach()
|
||||||
```
|
```
|
||||||
|
|
||||||
Once we created our layout, we have to prepare our dots. So we create
|
Once we created our layout, we have to prepare our dots. So we create
|
||||||
three files: `selected_dot.xml`, `default_dot.xml` and
|
three files: `selected_dot.xml`, `default_dot.xml` and
|
||||||
`tab_selector.xml`.
|
`tab_selector.xml`.
|
||||||
|
|
||||||
### selected_dot.xml
|
#### selected_dot.xml
|
||||||
|
|
||||||
```xml
|
```xml
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
@ -77,7 +89,7 @@ three files: `selected_dot.xml`, `default_dot.xml` and
|
|||||||
</layer-list>
|
</layer-list>
|
||||||
```
|
```
|
||||||
|
|
||||||
### default_dot.xml
|
#### default_dot.xml
|
||||||
|
|
||||||
```xml
|
```xml
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
@ -94,7 +106,7 @@ three files: `selected_dot.xml`, `default_dot.xml` and
|
|||||||
</layer-list>
|
</layer-list>
|
||||||
```
|
```
|
||||||
|
|
||||||
### tab_selector.xml
|
#### tab_selector.xml
|
||||||
|
|
||||||
```xml
|
```xml
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
@ -107,8 +119,6 @@ three files: `selected_dot.xml`, `default_dot.xml` and
|
|||||||
</selector>
|
</selector>
|
||||||
```
|
```
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
Now we need to add only 3 lines of code to `TabLayout` in our XML
|
Now we need to add only 3 lines of code to `TabLayout` in our XML
|
||||||
layout.
|
layout.
|
||||||
|
|
||||||
@ -118,7 +128,7 @@ app:tabGravity="center"
|
|||||||
app:tabIndicatorHeight="0dp"
|
app:tabIndicatorHeight="0dp"
|
||||||
```
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
*[ViewPager with dots indicator][3] at medium.com*
|
*[ViewPager with dots indicator][3] at medium.com*
|
||||||
|
|
@ -2,9 +2,10 @@ package com.adriankuta.viewpagerdots.activities
|
|||||||
|
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
import androidx.appcompat.app.AppCompatActivity
|
import androidx.appcompat.app.AppCompatActivity
|
||||||
|
import androidx.viewpager.widget.ViewPager
|
||||||
import com.adriankuta.viewpagerdots.R
|
import com.adriankuta.viewpagerdots.R
|
||||||
import com.adriankuta.viewpagerdots.adapters.SectionsPagerAdapter
|
import com.adriankuta.viewpagerdots.adapters.SectionsPagerAdapter
|
||||||
import kotlinx.android.synthetic.main.activity_viewpager.*
|
import com.google.android.material.tabs.TabLayout
|
||||||
import kotlinx.android.synthetic.main.toolbar.*
|
import kotlinx.android.synthetic.main.toolbar.*
|
||||||
|
|
||||||
class ViewPagerActivity : AppCompatActivity() {
|
class ViewPagerActivity : AppCompatActivity() {
|
||||||
@ -20,6 +21,8 @@ class ViewPagerActivity : AppCompatActivity() {
|
|||||||
supportFragmentManager
|
supportFragmentManager
|
||||||
)
|
)
|
||||||
|
|
||||||
|
val viewPager = findViewById<ViewPager>(R.id.viewPager)
|
||||||
|
val tabLayout = findViewById<TabLayout>(R.id.tabLayout)
|
||||||
viewPager.adapter = sectionsPagerAdapter
|
viewPager.adapter = sectionsPagerAdapter
|
||||||
tabLayout.setupWithViewPager(viewPager)
|
tabLayout.setupWithViewPager(viewPager)
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user