java - Custom Toolbar overlapping Fragment -


so i'm trying set fragment shows badges , reason won't fit screen , starts top. seems results in toolbar floating on whole fragment. there i'm doing wrong can point out? i'm using 3 fragments tabbing system.

here screenshot

1) fragment (myfragment.java)

public class myfragment extends fragment {   public myfragment() {     // required empty public constructor } private recyclerview recyclerview; private badgeadapter adapter; private list<hatbadge> badge;  @override public view oncreateview(layoutinflater inflater, viewgroup container,                          bundle savedinstancestate) {      final view view = inflater.inflate(r.layout.fragment_my_closet, container, false);     final fragmentactivity c = getactivity();     final recyclerview recyclerview = (recyclerview) view.findviewbyid(r.id.recycler_view);      badge = new arraylist<>();      adapter = new badgeadapter(getcontext(), badge);      recyclerview.layoutmanager mlayoutmanager = new gridlayoutmanager(getcontext(), 2);     recyclerview.setlayoutmanager(mlayoutmanager);     recyclerview.additemdecoration(new myfragment.gridspacingitemdecoration(2, dptopx(10), true));     recyclerview.setitemanimator(new defaultitemanimator());     new thread(new runnable() {         @override         public void run() {             c.runonuithread(new runnable() {                 @override                 public void run() {                     recyclerview.setadapter(adapter);                  }             });         }     }).start();      preparealbums();      return view; } /**  * adding few albums testing  */ private void preparealbums() {     int[] covers = new int[]{             r.drawable.nike,             r.drawable.nike,             r.drawable.nike,             r.drawable.nike};      hatbadge = new hatbadge("hat 1", 13, covers[0]);     badge.add(a);      = new hatbadge("hat 1", 8, covers[1]);     badge.add(a);      = new hatbadge("hat 5", 11, covers[2]);     badge.add(a);      = new hatbadge("hat 5", 11, covers[2]);     badge.add(a);       adapter.notifydatasetchanged(); }  /**  * recyclerview item decoration - give equal margin around grid item  */ public class gridspacingitemdecoration extends recyclerview.itemdecoration {      private int spancount;     private int spacing;     private boolean includeedge;      public gridspacingitemdecoration(int spancount, int spacing, boolean includeedge) {         this.spancount = spancount;         this.spacing = spacing;         this.includeedge = includeedge;     }      @override     public void getitemoffsets(rect outrect, view view, recyclerview parent, recyclerview.state state) {         int position = parent.getchildadapterposition(view); // item position         int column = position % spancount; // item column          if (includeedge) {             outrect.left = spacing - column * spacing / spancount; // spacing - column * ((1f / spancount) * spacing)             outrect.right = (column + 1) * spacing / spancount; // (column + 1) * ((1f / spancount) * spacing)              if (position < spancount) { // top edge                 outrect.top = spacing;             }             outrect.bottom = spacing; // item bottom         } else {             outrect.left = column * spacing / spancount; // column * ((1f / spancount) * spacing)             outrect.right = spacing - (column + 1) * spacing / spancount; // spacing - (column + 1) * ((1f /    spancount) * spacing)             if (position >= spancount) {                 outrect.top = spacing; // item top             }         }     } }  /**  * converting dp pixel  */ private int dptopx(int dp) {     resources r = getresources();     return math.round(typedvalue.applydimension(typedvalue.complex_unit_dip, dp, r.getdisplaymetrics())); }  } 

2) activity running fragment (myactivity.java)

public class myactivity extends actionbaractivity {  toolbar toolbar; tablayout tablayout; viewpager viewpager; viewpageradapter viewpageradapter;  @override protected void oncreate(bundle savedinstancestate) {     super.oncreate(savedinstancestate);      //remove title bar     this.requestwindowfeature(window.feature_no_title);     this.getwindow().setflags(windowmanager.layoutparams.flag_fullscreen, windowmanager.layoutparams.flag_fullscreen);      setcontentview(r.layout.activity_tab);      toolbar = (toolbar)findviewbyid(r.id.toolbar);     setsupportactionbar(toolbar);     tablayout = (tablayout)findviewbyid(r.id.tablayout);     viewpager = (viewpager)findviewbyid(r.id.viewpager);     viewpageradapter = new viewpageradapter(getsupportfragmentmanager());     viewpageradapter.addfragments(new homefragment(), "info");     viewpageradapter.addfragments(new myfragment(), "my fragment");     viewpageradapter.addfragments(new carefragment(), "care");     viewpager.setadapter(viewpageradapter);     tablayout.setupwithviewpager(viewpager);  } 

3) fragment_my_closet.xml

<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" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@color/viewbg" >      <android.support.v7.widget.recyclerview         android:id="@+id/recycler_view"         android:layout_width="match_parent"         android:layout_height="wrap_content"         android:scrollbars="vertical"         android:cliptopadding="false" />  </relativelayout> 

4) activity_tab.xml

    <?xml version="1.0" encoding="utf-8"?> <relativelayout     xmlns:app="http://schemas.android.com/apk/res-auto"     xmlns:android="http://schemas.android.com/apk/res/android"     android:layout_width="match_parent" android:layout_height="match_parent">      <android.support.design.widget.appbarlayout         android:layout_height="wrap_content"         android:layout_width="match_parent"         app:theme="@style/apptheme"         >         <include             android:layout_height="wrap_content"             android:layout_width="match_parent"             layout="@layout/toolbar_layout"             />         <android.support.design.widget.tablayout             android:layout_width="match_parent"             android:layout_height="wrap_content"             android:id="@+id/tablayout"             app:tabmode="fixed"             app:tabgravity="fill"             ></android.support.design.widget.tablayout>       </android.support.design.widget.appbarlayout>     <android.support.v4.view.viewpager         android:layout_width="match_parent"         android:layout_height="match_parent"         android:id="@+id/viewpager"         ></android.support.v4.view.viewpager> </relativelayout> 

5) toolbar_layout.xml

<?xml version="1.0" encoding="utf-8"?> <android.support.v7.widget.toolbar xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="?attr/colorprimarydark"  android:fitssystemwindows="true" android:id="@+id/toolbar" app:theme="@style/theme.appcompat.light.noactionbar">  </android.support.v7.widget.toolbar> 

appbarlayout depends on being child of coordinatorlayout. needs scrolling view implements scrollingviewbehavior. there's standard 1 implemented can used setting app:layout_behavior="@string/appbar_scrolling_view_behavior".

<android.support.design.widget.coordinatorlayout     xmlns:app="http://schemas.android.com/apk/res-auto"     xmlns:android="http://schemas.android.com/apk/res/android"     android:layout_width="match_parent" android:layout_height="match_parent">     <android.support.design.widget.appbarlayout         android:layout_height="wrap_content"         android:layout_width="match_parent"         app:theme="@style/apptheme"         >         <include             android:layout_height="wrap_content"             android:layout_width="match_parent"             layout="@layout/toolbar_layout"             />         <android.support.design.widget.tablayout             android:layout_width="match_parent"             android:layout_height="wrap_content"             android:id="@+id/tablayout"             app:tabmode="fixed"             app:tabgravity="fill"/>     </android.support.design.widget.appbarlayout>     <android.support.v4.view.viewpager         android:layout_width="match_parent"         android:layout_height="match_parent"         android:id="@+id/viewpager"         app:layout_behavior="@string/appbar_scrolling_view_behavior"/> </android.support.design.widget.coordinatorlayout> 

Comments

Popular posts from this blog

sql server - Cannot query correctly (MSSQL - PHP - JSON) -

php - trouble displaying mysqli database results in correct order -

C++ Linked List -