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