in application have activity_main.xml this:-
<coordinator layout> <appbarlayout> <collapsingtoolbarlayout> <imageview/> <toolbar/> </collapsingtoolbarlayout> </appbarlayout> <recyclerview/> </coordinating layout> layout.xml ----->>>
<?xml version="1.0" encoding="utf-8"?> <android.support.v4.widget.drawerlayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" xmlns:ads="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@drawable/theme_background" android:id="@+id/drawerlayout" > <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" android:layout_width="match_parent" android:layout_height="match_parent" android:fitssystemwindows="true" android:id="@+id/activity_main_id" tools:context="objectdistance.ajai.ram.sita.gallery.mainactivity"> <android.support.design.widget.appbarlayout android:id="@+id/app_bar_layout" android:layout_width="match_parent" android:layout_height="wrap_content" android:fitssystemwindows="true" android:theme="@style/themeoverlay.appcompat.dark.actionbar"> <android.support.design.widget.collapsingtoolbarlayout android:id="@+id/collapsing_toolbar" android:layout_width="match_parent" android:layout_height="match_parent" app:layout_scrollflags="scroll|exituntilcollapsed" app:contentscrim="?attr/colorprimary" app:expandedtitlemarginstart="48dp" app:expandedtitlemarginend="64dp" android:fitssystemwindows="true"> <imageview android:id="@+id/imagetoolbar" android:layout_width="match_parent" android:layout_height="200dp" android:scaletype="centercrop" android:fitssystemwindows="true" android:foreground="@drawable/image_header_foreground" app:layout_scrollflags="scroll" app:layout_collapsemode="parallax"/> <android.support.v7.widget.toolbar android:id="@+id/toolbar" android:layout_width="match_parent" android:layout_height="?attr/actionbarsize" app:popuptheme="@style/themeoverlay.appcompat.light" android:background="@drawable/theme_background" app:layout_collapsemode="pin" > <spinner android:id="@+id/spinner_nav" android:layout_width="wrap_content" android:layout_height="wrap_content" android:dropdownverticaloffset="?attr/actionbarsize" /> </android.support.v7.widget.toolbar> </android.support.design.widget.collapsingtoolbarlayout> </android.support.design.widget.appbarlayout> <android.support.v7.widget.recyclerview android:id="@+id/list" android:layout_width="match_parent" android:layout_height="match_parent" app:layout_behavior="@string/appbar_scrolling_view_behavior" /> </android.support.design.widget.coordinatorlayout> <listview android:layout_width="200dp" android:layout_height="match_parent" android:id="@+id/navlist" android:background="#dedede" android:layout_gravity="start" /> </android.support.v4.widget.drawerlayout> now want include fast scrolling recyclerview such image date can popup on scrolling.
sample image of such scrollbar:- 
i searched , tried using few libraries think due collapsing toolbar scrollbar not working properly.
screenshot of scroll library used:-
here in case scroll bar starting top , scroll computation not proper.
please solving issue.
thanks
we want some knowledge of sectionindexer. here doc of sectionindexer.
we have set true setfastscrollenabled(true) method, used listview.......you can use recyclerview instead of listview in below example....
this activity
public class fastscoll extends listactivity { listview fruitview; @override public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_fast_scoll); fruitview = (listview) findviewbyid(android.r.id.list); fruitview.setfastscrollenabled(true); string[] fruits = getresources().getstringarray(r.array.fruits_array); final list<string> fruitlist = arrays.aslist(fruits); collections.sort(fruitlist); setlistadapter(new listadapter(this, fruitlist)); fruitview.setonitemclicklistener(new adapterview.onitemclicklistener() { public void onitemclick(adapterview<?> parent, view arg1, int position, long arg3) { log.e("sushildlh",fruitlist.get(position)); } }); } } this activity_fast_scoll.xml file
<relativelayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:padding="5dp" > <listview android:id="@android:id/list" android:layout_width="fill_parent" android:layout_height="fill_parent" android:scrollbarstyle="outsideoverlay" /> </relativelayout> and custom adapter sectionindexer....
public class listadapter extends arrayadapter<string> implements sectionindexer { string[] sections; list<string> fruits; list<string> sectionletters=new arraylist<string>(); public listadapter(context context, list<string> fruitlist) { super(context, android.r.layout.simple_list_item_1, fruitlist); this.fruits = fruitlist; (int x = 0; x < fruits.size(); x++) { string fruit = fruits.get(x); string ch = fruit.charat(0)+""; ch = ch.touppercase(locale.us); sectionletters.add(ch); } arraylist<string> sectionlist = new arraylist<string>(sectionletters); sections = new string[sectionlist.size()]; sectionlist.toarray(sections); } public int getpositionforsection(int section) { log.e("sushildlh", "" + section); return section; } public int getsectionforposition(int position) { log.d("sushildlh", "" + position); return position; } public object[] getsections() { return sections; } } this fruits array in string.xml file.
<string-array name="fruits_array"> <item>apples</item> <item>apricots</item> <item>avocado</item> <item>annona</item> <item>banana</item> <item>bilberry</item> <item>blackberry</item> <item>custard apple</item> <item>clementine</item> <item>cantalope</item> <item>coconut</item> <item>currant</item> <item>cherry</item> <item>cherimoya</item> <item>date</item> <item>damson</item> <item>durian</item> <item>elderberry</item> <item>fig</item> <item>feijoa</item> <item>grapefruit</item> <item>grape</item> <item>gooseberry</item> <item>guava</item> <item>honeydew melon</item> <item>huckleberry</item> <item>jackfruit</item> <item>juniper berry</item> <item>jambul</item> <item>jujube</item> <item>kiwi</item> <item>kumquat</item> <item>lemons</item> <item>limes</item> <item>lychee</item> <item>mango</item> <item>mandarin</item> <item>mangostine</item> <item>nectaraine</item> <item>orange</item> <item>olive</item> <item>prunes</item> <item>pears</item> <item>plum</item> <item>pineapple</item> <item>peach</item> <item>papaya</item> <item>passionfruit</item> <item>pomegranate</item> <item>pomelo</item> <item>raspberries</item> <item>rock melon</item> <item>rambutan</item> <item>strawberries</item> <item>sweety</item> <item>salmonberry</item> <item>satsuma</item> <item>tangerines</item> <item>tomato</item> <item>ugli</item> <item>watermelon</item> <item>woodapple</item> </string-array> and output of these code....
feel free ask if stuck anywhere in between code ....
note:- fastscroll image differ in different version of android (eg:-lollipop,marshmallow,etc) below output lollipop
for custom alphabetical fast scrollview add these 2 line in style.xml file in apptheme.
<item name="android:fastscrolltextcolor">@color/apptheme_color</item> //this used color of alphabetical fast scrollview <item name="android:fastscrollpreviewbackgroundright">@drawable/bg_default_focused_holo_light</item> //this image or , drawable file want set on alphabetical fast scrollview custom fast scorll output :-





Comments
Post a Comment