How do you create an Android View Pager with a dots indicator? -
probably many of (as me), have problem creating viewpager bottom dots, this: 
how create such android viewpager?
all need are: viewpager, tablayout , 2 drawables selected , default dots.
firstly, have add tablayout our screen layout, , connect viewpager. can in 2 ways:
nested tablayout in viewpager
<android.support.v4.view.viewpager android:id="@+id/photos_viewpager" android:layout_width="match_parent" android:layout_height="match_parent"> <android.support.design.widget.tablayout android:layout_width="match_parent" android:layout_height="wrap_content"/> </android.support.v4.view.viewpager> in case
tablayoutautomatically connectedviewpager,tablayoutnextviewpager, not on him.
separate tablayout
<android.support.v4.view.viewpager android:id="@+id/photos_viewpager" android:layout_width="match_parent" android:layout_height="match_parent"/> <android.support.design.widget.tablayout android:id="@+id/tab_layout" android:layout_width="match_parent" android:layout_height="wrap_content"/> in case, can put
tablayoutanywhere, have connecttablayoutviewpagerprogrammatically
viewpager pager = (viewpager) view.findviewbyid(r.id.photos_viewpager); pageradapter adapter = new photosadapter(getchildfragmentmanager(), photosurl); pager.setadapter(adapter); tablayout tablayout = (tablayout) view.findviewbyid(r.id.tab_layout); tablayout.setupwithviewpager(pager, true); once created our layout, have prepare our dots. create 3 files: selected_dot.xml, default_dot.xml , tab_selector.xml.
selected_dot.xml
<?xml version="1.0" encoding="utf-8"?> <layer-list xmlns:android="http://schemas.android.com/apk/res/android"> <item> <shape android:innerradius="0dp" android:shape="ring" android:thickness="8dp" android:uselevel="false"> <solid android:color="@color/coloraccent"/> </shape> </item> </layer-list> default_dot.xml
<?xml version="1.0" encoding="utf-8"?> <layer-list xmlns:android="http://schemas.android.com/apk/res/android"> <item> <shape android:innerradius="0dp" android:shape="ring" android:thickness="8dp" android:uselevel="false"> <solid android:color="@android:color/darker_gray"/> </shape> </item> </layer-list> tab_selector.xml
<?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:drawable="@drawable/selected_dot" android:state_selected="true"/> <item android:drawable="@drawable/default_dot"/> </selector> now need add 3 lines of code tablayout in our xml layout.
app:tabbackground="@drawable/tab_selector" app:tabgravity="center" app:tabindicatorheight="0dp"
Comments
Post a Comment