java - Android ViewPager doesn't show Fragment -
i'm trying let viewpager show fragments, however, doesn't seem work. not showing anything, not height. can tell me step missing? thanks
main_activity.xml:
<android.support.design.widget.coordinatorlayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@color/colorbackground"> <android.support.v4.view.viewpager android:id="@+id/viewpager" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_above="@+id/bottomnavigation" /> <com.aurelhubert.ahbottomnavigation.ahbottomnavigation android:id="@+id/bottomnavigation" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_gravity="bottom" /> </android.support.design.widget.coordinatorlayout>
mainactivity.java:
public class mainactivity extends appcompatactivity { private static final string tag = "mainactivity"; ahbottomnavigation bottomnavigation; viewpager viewpager; @override protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_main); bottomnavigation = (ahbottomnavigation) findviewbyid(r.id.bottomnavigation); viewpager = (viewpager) findviewbyid(r.id.viewpager); viewpageradapter pageradapter = new viewpageradapter(getsupportfragmentmanager()); // buttom navigation // add items ahbottomnavigationitem item1 = new ahbottomnavigationitem("rooms", r.drawable.ic_chatboxes); ahbottomnavigationitem item2 = new ahbottomnavigationitem("user", r.drawable.ic_contact_outline); bottomnavigation.additem(item1); bottomnavigation.additem(item2); // customize buttom navigation bottomnavigation.settitlestate(ahbottomnavigation.titlestate.always_show); // set colors bottomnavigation.setaccentcolor(contextcompat.getcolor(this, r.color.coloraccent)); bottomnavigation.setinactivecolor(contextcompat.getcolor(this, r.color.colortabdefault)); // set background color bottomnavigation.setdefaultbackgroundcolor(contextcompat.getcolor(this, r.color.colorbackground)); bottomnavigation.settranslucentnavigationenabled(true); // viewpager setup pageradapter.addfragment(new rooms(), "rooms"); pageradapter.addfragment(new user(), "user"); viewpager.setadapter(pageradapter); viewpager.setcurrentitem(bottomnavigation.getcurrentitem()); viewpager.addonpagechangelistener(new viewpager.onpagechangelistener() { @override public void onpagescrolled(int position, float positionoffset, int positionoffsetpixels) { } @override public void onpageselected(int position) { bottomnavigation.setcurrentitem(position); } @override public void onpagescrollstatechanged(int state) { } }); bottomnavigation.setontabselectedlistener(new ahbottomnavigation.ontabselectedlistener() { @override public boolean ontabselected(int position, boolean wasselected) { viewpager.setcurrentitem(position, true); return true; } }); }
viewpageradapter.java:
public class viewpageradapter extends fragmentpageradapter { private final list<fragment> mfragmentlist = new arraylist<>(); private final list<string> mfragmenttitlelist = new arraylist<>(); private fragment currentitem; public viewpageradapter(fragmentmanager manager) { super(manager); } @override public fragment getitem(int position) { return mfragmentlist.get(position); } @override public int getcount() { return mfragmentlist.size(); } public void addfragment(fragment fragment, string title) { mfragmentlist.add(fragment); mfragmenttitlelist.add(title); } @override public charsequence getpagetitle(int position) { return mfragmenttitlelist.get(position); } @override public void setprimaryitem(viewgroup container, int position, object object) { if (getcurrentitem() != object) { currentitem = ((fragment) object); } super.setprimaryitem(container, position, object); } public fragment getcurrentitem() { return currentitem; } }
Comments
Post a Comment