i developing app in have implemented viewpager want user swipe , next screen. implementing fragments. want 1 more thing. want indicate screen active now. tabs. searched on internet did not find thing helpful.if there idea appriciated. thanks. here view pager adapter , fragment activity , xml layout
import java.util.arraylist; import java.util.list; import com.viewpagerindicator.titlepageindicator; import android.os.bundle; import android.support.v4.app.fragment; import android.support.v4.app.fragmentactivity; import android.support.v4.view.viewpager; import android.support.v4.view.viewpager.onpagechangelistener; import android.widget.toast; public class mainactivity extends fragmentactivity implements onpagechangelistener { @override protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_main); list<fragment> list = new arraylist<fragment>(); list.add(myfragment.newinstance("fragment 1")); list.add(myfragment.newinstance("fragment 2")); list.add(myfragment.newinstance("fragment 3")); mypageradapter = new mypageradapter(getsupportfragmentmanager(), list); viewpager pager = (viewpager) findviewbyid(r.id.viewpager); pager.setadapter(a); } @override public void onpagescrollstatechanged(int arg0) { // todo auto-generated method stub } @override public void onpagescrolled(int arg0, float arg1, int arg2) { // todo auto-generated method stub } @override public void onpageselected(int arg0) { // todo auto-generated method stub } }
adapter.java
package com.example.fragments; import java.util.list; import android.support.v4.app.fragment; import android.support.v4.app.fragmentmanager; import android.support.v4.app.fragmentpageradapter; import android.support.v4.view.pageradapter; import android.view.view; public class mypageradapter extends fragmentpageradapter { list<fragment> fragments; public mypageradapter(fragmentmanager fm,list<fragment> f) { super(fm); this.fragments = f; } @override public fragment getitem(int arg0) { return fragments.get(arg0); } @override public int getcount() { // todo auto-generated method stub return fragments.size(); } }
main.xml
<relativelayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" > <android.support.v4.view.viewpager android:id="@+id/viewpager" android:layout_below="@+id/titles" android:layout_width="fill_parent" android:layout_height="fill_parent" /> </relativelayout>
see have created class create page indicator
public class dotsscrollbar { linearlayout main_image_holder; public static void createdotscrollbar(context context, linearlayout main_holder,int selectedpage,int count) { for(int i=0;i<count;i++) { imageview dot = null; dot= new imageview(context); linearlayout.layoutparams vp = new linearlayout.layoutparams(layoutparams.wrap_content, layoutparams.wrap_content); dot.setlayoutparams(vp); if(i==selectedpage) { try { dot.setimageresource(r.drawable.paging_h); } catch (exception e) { log.d("inside dotsscrollbar.java","could not locate identifier"); } }else { dot.setimageresource(r.drawable.paging_n); } main_holder.addview(dot); } main_holder.invalidate(); } }
now in activity class call function createdotscrollbar
below:
public void updateindicator(int currentpage) { dots_scrollbar_holder.removeallviews(); dotsscrollbar.createdotscrollbar(this, mdotsscrollbarholder, mcurrentpage, totalnumberofpages); }
and call updateindicator function inside onpagescrollstatechanged
like :
@override public void onpagescrollstatechanged(int state) { // todo auto-generated method stub switch (state) { case 0: updateindicator(mcurrentpage); break; }
hope trick.
Comments
Post a Comment