android - RecyclerLayout inside CoordinatorLayout scrollToPosition visibility -
i using coordinatorlayout appbarlayout inside , element try able scroll when recyclerview being scrolled. until that, working suposed to, problems comes when try programatically scrolltoposition of lasts positions of recyclerview. recyclerviews scroll, position tell scroll not visible (in fact, if scroll manually, visible once other element inside appbarlayout has scrolled out of screen). this code:
<android.support.design.widget.coordinatorlayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="match_parent"> <android.support.design.widget.appbarlayout android:id="@+id/app_bar_layout" android:layout_width="match_parent" android:layout_height="wrap_content" app:elevation="0dp"> <com.github.mikephil.charting.charts.barchart android:id="@+id/chart" android:layout_width="match_parent" android:layout_height="280dp" android:layout_below="@+id/toolbar_conso" android:background="@color/background_dark_grey" app:layout_scrollflags="scroll|enteralways" /> </android.support.design.widget.appbarlayout> <linearlayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" app:layout_behavior="@string/appbar_scrolling_view_behavior"> <linearlayout android:id="@+id/linear_total_conso" android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="center_horizontal" android:orientation="horizontal"> <textview android:id="@+id/current_consumption" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="" android:textcolor="@color/graph_consumption_color" android:textsize="30sp" /> <textview android:id="@+id/consumption_unit" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginleft="5dp" android:layout_marginstart="5dp" android:text="" android:textappearance="@style/textappearance.smartlink.large" android:textcolor="@color/graph_consumption_color" /> </linearlayout> <android.support.v7.widget.recyclerview android:id="@+id/recycler_view" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_gravity="center_horizontal" /> </linearlayout> </android.support.design.widget.coordinatorlayout>
and code of recyclerview:
recyclerview = (recyclerview) view.findviewbyid(r.id.recycler_view); recyclerview.setlayoutmanager(new linearlayoutmanager(context)); recyclerview.setadapter(adapter);
the adapter simple text adapter........
when try scroll after receiving event service, there broadcastreceiver receives event , manage result:
@override public void onreceive(context context, intent intent) { int position = intent.getextras().getint(position); recyclerview.scrolltoposition(position); }
my idea think recyclerview does't understands position not visible.....
try code, collapse appbarlayout:
@override public void onreceive(context context, intent intent) { int position = intent.getextras().getint(position); app_bar_layout.setexpanded(false); recyclerview.scrolltoposition(position); }
Comments
Post a Comment