java - ViewPager - Animate TextView on swipe -
my swipe screen work perfect, has 3 fragments few text views per fragment.
i animated in flipview component, found better use viewpager problem.
my problem don't know handle fragments on swipe.
when swipe want know wich fragment on fragment goes.
because when swipe fragmenta fragmentb want text box on fragmentb animate left right, when return fragmentb fragmenta want animate text box right left on fragmenta.
all animation know how do, don't know catch , fragment i'm going.
it's not problem animate each fragment in fragment code, don't know fragment goes on him , don't know on side text animates. :)
my code looks this:
activity:
viewpager viewpager; int numberofviewpagerchildren = 3; int lastindexofviewpagerchildren = numberofviewpagerchildren - 1; @override protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_slide_tips); viewpager = (viewpager) findviewbyid(r.id.pager); viewpager.setadapter(new myadapter(getsupportfragmentmanager())); final layerdrawable background = (layerdrawable) viewpager.getbackground(); background.getdrawable(0).setalpha(0); // lowest drawable background.getdrawable(1).setalpha(0); background.getdrawable(2).setalpha(255); // upper 1 viewpager.setpagetransformer(true, new viewpager.pagetransformer() { @override public void transformpage(view view, float position) { int index = (integer) view.gettag(); drawable currentdrawableinlayerdrawable; currentdrawableinlayerdrawable = background.getdrawable(index); if (position <= -1 || position >= 1) { currentdrawableinlayerdrawable.setalpha(0); } else if (position == 0) { currentdrawableinlayerdrawable.setalpha(255); } else { currentdrawableinlayerdrawable.setalpha((int) (255 - math.abs(position * 255))); } } }); } } myadapter:
class myadapter extends fragmentstatepageradapter { int numberofviewpagerchildren = 3; public myadapter(fragmentmanager fm) { super(fm); } @override public fragment getitem(int i) { fragment fragment=null; if(i==0) { fragment=new fragementa(); } if(i==1) { fragment=new fragmentb(); } if(i==2) { fragment=new fragmentc(); } return fragment; } @override public int getcount() { return numberofviewpagerchildren; } @override public boolean isviewfromobject(view view, object object) { if(object instanceof fragementa){ view.settag(2); } if(object instanceof fragmentb){ view.settag(1); } if(object instanceof fragmentc){ view.settag(0); } return super.isviewfromobject(view, object); } } and 1 fragment, let fragmenta:
public class fragmenta extends fragment { @override public view oncreateview(layoutinflater inflater, viewgroup container, bundle savedinstancestate) { view v = inflater.inflate(r.layout.fragment_fragment_a,container,false); return v; } }
Comments
Post a Comment