android - ViewPager fragments' layout not displayed -
i have child activity uses collapsingtoolbarlayout , tablayout. need use viewpager display tabs' fragments, fragments not displayed @ all, though oncreateview event called correctly.
if replace viewpager element simple textview displayed correctly.
here code i'm using:
activity
<?xml version="1.0" encoding="utf-8"?> <android.support.design.widget.coordinatorlayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" xmlns:fresco="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="match_parent" android:fitssystemwindows="true" tools:context=".ui.comicbookactivity"> <android.support.design.widget.appbarlayout android:layout_width="match_parent" android:layout_height="wrap_content" android:fitssystemwindows="true" android:theme="@style/apptheme.appbaroverlay"> <android.support.design.widget.collapsingtoolbarlayout android:background="@color/colorprimary" android:layout_width="match_parent" android:layout_height="210dip" app:layout_scrollflags="scroll|exituntilcollapsed" app:contentscrim="?attr/colorprimary" app:expandedtitlemarginstart="48dp" app:expandedtitlemarginend="64dp" android:fitssystemwindows="true" android:id="@+id/collapsing_toolbar"> <com.facebook.drawee.view.simpledraweeview android:layout_width="match_parent" android:layout_height="match_parent" app:layout_collapsemode="parallax" android:id="@+id/imageviewprofile" android:scaletype="fitstart" fresco:placeholderimagescaletype="centercrop" android:fitssystemwindows="true" /> <android.support.v7.widget.toolbar android:id="@+id/toolbar" android:layout_width="match_parent" android:layout_height="?attr/actionbarsize" app:popuptheme="@style/apptheme.popupoverlay" android:fitssystemwindows="true" app:layout_collapsemode="pin"> </android.support.v7.widget.toolbar> </android.support.design.widget.collapsingtoolbarlayout> <android.support.design.widget.tablayout android:id="@+id/tablayout" android:scrollbars="horizontal" android:layout_below="@+id/toolbar" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="@color/tabcolor" app:layout_scrollflags="scroll|enteralways" app:tabmode="scrollable"/> </android.support.design.widget.appbarlayout> <include layout="@layout/content_comic_book" /> </android.support.design.widget.coordinatorlayout> content_comic_book.xml
<?xml version="1.0" encoding="utf-8"?> <android.support.v4.widget.nestedscrollview xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:id="@+id/scroll" android:layout_width="match_parent" android:layout_height="match_parent" android:cliptopadding="false" android:scrollbars="vertical" app:layout_behavior="@string/appbar_scrolling_view_behavior"> <include layout="@layout/content_chapters" /> </android.support.v4.widget.nestedscrollview> content_chapters.xml
<?xml version="1.0" encoding="utf-8"?> <relativelayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" app:layout_behavior="@string/appbar_scrolling_view_behavior" tools:context=".ui.comicbookactivity" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@color/light_background" android:paddingbottom="@dimen/activity_vertical_margin" android:paddingleft="@dimen/activity_horizontal_margin" android:paddingright="@dimen/activity_horizontal_margin" android:paddingtop="@dimen/activity_vertical_margin"> <android.support.v4.view.viewpager android:id="@+id/viewpager" android:layout_width="match_parent" android:layout_height="match_parent" app:layout_behavior="@string/appbar_scrolling_view_behavior" /> </relativelayout> and activity class:
@override protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity); // configuring toolbar actionbar setsupportactionbar((toolbar) findviewbyid(r.id.toolbar)); getsupportactionbar().setdisplayhomeasupenabled(true); viewpager = (viewpager) findviewbyid(r.id.viewpager); setupviewpager(viewpager); tablayout = (tablayout) findviewbyid(r.id.tablayout); setuptablayout(tablayout); private void setupviewpager(viewpager viewpager) { viewpageradapter adapter = new viewpageradapter(getsupportfragmentmanager()); adapter.addfragment(new aboutcomicbookfragment(), getstring(r.string.label_about)); adapter.addfragment(new comicbookchaptersfragment(), getstring(r.string.label_chapters)); viewpager.setadapter(adapter); } private void setuptablayout(tablayout tablayout) { tablayout.setupwithviewpager(viewpager); } class viewpageradapter extends fragmentpageradapter { private final list<fragment> mfragmentlist = new arraylist<>(); private final list<string> mfragmenttitlelist = new arraylist<>(); 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); } } what wrong code?
from quick @ code seem me wrapping viewpager in nestedscrollview , relativelayout unnecessary. should able @ least remove nestedscrollview , possibly relativelayout moving necessary attributes viewpager instead.
so here's try verify:
- replace include reference
content_comic_bookcontent_chaptersin activity layout - remember move
app:layout_behaviourattributeviewpager
Comments
Post a Comment