Android Slidingtablayout for Viewpager tab Slide effect

Source: Internet
Author: User

First (you can swipe to toggle the page card)



Main Page layout file Remind_auction_new_list.xml:

<relativelayout    style= "@style/rosemary.plane"    xmlns:android= "http://schemas.android.com/apk/res/ Android >    <!--head Layout-    <com.liam.rosemary.ui.view.slidingtablayout        android:id= "@+id/stl _square "        android:layout_width=" match_parent "        android:layout_height=" wrap_content "/>    <!-- Content page-    <android.support.v4.view.viewpager        android:id= "@+id/vp_square"        android:layout_width= "Match_parent"        android:layout_height= "match_parent"        android:layout_below= "@id/stl_square"/>    <!--split Line--    <imageview        style= "@style/rosemary.line"        android:layout_below= "@id/stl_ Square "        android:src=" @drawable/horizontal_shadow "/></relativelayout>



Main Page code:

public class Myremindauctionnewlistactivity extends Actionbaractivity implements Iinit {private Slidingtablayout Mslid    Ingtablayout;    Private Viewpager Mviewpager;    Private Remindadapter Mremindadapter;        @Override protected void OnCreate (Bundle savedinstancestate) {super.oncreate (savedinstancestate);        Setcontentview (r.layout.remind_auction_new_list);    Init ();        } @Override public void init () {Actionbarutil.setup (this, r.string.my_remind);        Mslidingtablayout = (slidingtablayout) Findviewbyid (R.id.stl_square);        Mviewpager = (Viewpager) Findviewbyid (R.id.vp_square);        Set Viewpager Property Mremindadapter = new Remindadapter (Getsupportfragmentmanager (), this);        Mviewpager.setoffscreenpagelimit (2);        Mviewpager.setadapter (Mremindadapter);        Define Slidingtablayout mslidingtablayout.setdistributeevenly (TRUE);     Mslidingtablayout.setselectedindicatorcolors (Getresources (). GetColor (r.color.primary));   Mslidingtablayout.setbackgroundcolor (Getresources (). GetColor (R.color.white));        Mslidingtablayout.setcustomtabview (R.layout.view_tab, R.id.tv_text); Mslidingtablayout.setviewpager (Mviewpager); Load Viewpager}}


to add adapter for Viewpager multiple page cards:

public class Remindadapter extends Fragmentstatepageradapter {    private string[] titles;    Private Context CTX;    Public Remindadapter (Fragmentmanager FM, Context CTX) {        super (FM);        This.ctx = CTX;        Titles = Ctx.getresources (). Getstringarray (R.array.remind_type);    }    @Override public    Fragment getItem (int position) {        if (position = = 0) {//Session reminder            return Myremindauctionlistfragment.newinstance (0);        } else {//seller reminds            return myremindsallerlistfragment.newinstance (1);        }    }    @Override public    charsequence getpagetitle (int position) {        return titles[position];    }    @Override public    int GetCount () {        return titles.length;    }}


fragment of the actual content of each page card:

public class Myremindauctionlistfragment extends Basefragment implements Ipagination, Iresponsehandler,    Swiperefreshlayout.onrefreshlistener {private int mtag; Private ListView mlistview;//Racket field List private listadapter<auctioninfoviewmodel> madapter;//racket field Adapter private Myreminda    Uctionnewlistactivity mactivity;    Drop-down Refresh component private swiperefreshlayout mswiperefreshlayout;    Private Auctioninfoviewmodel Mviewmodel = new Auctioninfoviewmodel ();   Private TextView Memptyview; Blank view public static myremindauctionlistfragment newinstance (int tag) {myremindauctionlistfragment F = new MyR        Emindauctionlistfragment ();        F.mtag = tag;    return F; } @Override Public View oncreateview (Layoutinflater inflater, @Nullable viewgroup container, @Nullable Bundle Savedi        nstancestate) {View v = inflater.inflate (r.layout.remind_auction_list, NULL);        Mswiperefreshlayout = $ (v, R.id.srl_refresh);  Mlistview = $ (v, R.id.remind_auction_listview);      Memptyview = $ (v, r.id.tv_remind_warning);        Mswiperefreshlayout.setonrefreshlistener (this); Mswiperefreshlayout.setcolorschemeresources (R.color.background_blue_standard, R.color.white, R.color.background_        Blue_standard, R.color.white);        Fetchdata (first);    return v;        } @Override public void Onattach (activity activity) {Super.onattach (activity); if (activity instanceof myremindauctionnewlistactivity) {mactivity = ((myremindauctionnewlistactivity) Activit        y);        }} @Override public void fetchnewdata (int tag) {mviewmodel.increasepageindex ();    Fetchdata (first);        } @Override public void fetchdata (int tag) {mactivity.toggleprogress (true); Getmyremindauctionlistparam param = new Getmyremindauctionlistparam (Data.getuserid (), Mviewmodel.getpageindex (),        Data.page_size_medium);    Auctionapi.getmyremindauctionlist (this, param); } @Override public void UpdateUI (Object response, int tag) {mactivity.toggleprogress (false);        Mswiperefreshlayout.setrefreshing (FALSE);        Mviewmodel.inflate (response);  if (Madapter = = null) {Madapter = new listadapter<auctioninfoviewmodel> (mactivity, Mviewmodel.getlist (), r.layout.item_list_remind_auction) {@Override protected void onbind (int position, Auctioni                    Nfoviewmodel Item, Viewholder holder) {Holder.setimageurl (R.id.head_icon, Item.getimageurl ());                    Holder.settext (R.id.title, Item.getauctionidstr ());                    Holder.settext (R.id.sub_title, Item.getauctionname ());                    Holder.settext (R.id.tv_auction_status, Item.getstatusstr ());                ((TextView) Holder.get (R.id.tv_auction_status)). SetTextColor (Getresources (). GetColor (Item.getcolor ()));            }            };            Mlistview.setadapter (Madapter);    Memptyview.settext (R.string.notice_auction_no_remind);        Memptyview.setgravity (Gravity.center);            Mlistview.setemptyview (Memptyview);                /** * Pull up more */Mlistview.setonscrolllistener (new Abslistview.onscrolllistener () {                    @Override public void onscrollstatechanged (Abslistview view, int scrollstate) { Switch (scrollstate) {case Scroll_state_idle:if (MLISTVIEW.GETLASTVI                                    Sibleposition () = = Mviewmodel.getlist (). Size ()-1) {if (!mviewmodel.iscomplete ()) {                                Fetchnewdata (first);                    }} break; }} @Override public void onscroll (Abslistview view, Int. Firstvisibleitem, in        T visibleitemcount, int totalitemcount) {}}); } else {Madapter.notifydatAsetchanged ();    } mlistview.setonitemclicklistener (New Onitemclicklistener ());    } @Override public void Onrefresh () {refresh ();        } @Override public void Refresh () {//Reset page index, adapter mviewmodel.reset ();    Fetchdata (first);        } @Override public int gettotal () {if (Madapter = = null) return 0;    return Madapter.getcount (); }/** * Listen for events to start different pages */class Onitemclicklistener implements Adapterview.onitemclicklistener {@Over  Ride public void Onitemclick (adapterview<?> parent, view view, int position, long ID) {int temp =            Mviewmodel.getlist (). get (position). GetStatus ();            int auctionid = Mviewmodel.getlist (). get (position). Getauctionid ();            Intent mintent = new Intent ();                    Switch (temp) {case 1:mintent.setclass (getactivity (), auctionpreviewactivity.class);                Break                   Case 2: Mintent.setclass (Getactivity (), auctionpreviewactivity.class);                Break                    Case 3:mintent.setclass (Getactivity (), auctionpreviewactivity.class);                Break            Default:break;            } Mintent.putextra (EnumIntentKey.AUCTION_ID.toString (), Auctionid);        StartActivity (mintent); }    }}




Android Slidingtablayout for Viewpager tab Slide effect

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.