gpt4 book ai didi

带有折叠工具栏的 RecyclerView 中的 Android 字母快速 ScrollView

转载 作者:IT王子 更新时间:2023-10-28 23:57:16 24 4
gpt4 key购买 nike

在我的应用程序中,我有这样的 activity_main.xml:-

<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>

现在我想在我的回收站 View 中加入快速滚动功能,以便在滚动时弹出图像日期。

此类滚动条的示例图像:- Scrolling

我搜索了这个并尝试使用几个库,但我认为由于我的折叠工具栏,滚动条无法正常工作。

使用的滚动库的屏幕截图:- My device

在我的例子中,滚动条是从顶部开始的,滚动计算也不正确。

请帮忙解决这个问题。

谢谢

最佳答案

我们想要SectionIndexer一些知识。这里是 Doc SectionIndexer

我们必须设置 TRUE setFastScrollEnabled(true) 方法,该方法LISTVIEW 一起使用。 .....您可以在下面的示例中使用 recyclerview 而不是 listView ....

这是 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));
}
});

}
}

这是 activity_fast_scoll.xml 文件

<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>

这是我的自定义适配器,带有 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;

for (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;
}
}

这是 string.xml 文件中的水果数组。

 <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>

最后这是这些代码的输出......

o o1 o2

随时询问您是否卡在代码之间的任何地方......

注意:- FastScroll 图像在不同版本的 android(例如:-lollipop、marshmallow 等)中会有所不同,以下输出适用于 Lollipop

lollipop

对于 Custom Alphabetical Fast scrollView,只需在 AppThemestyle.xml 文件中添加这两行。

<item name="android:fastScrollTextColor">@color/apptheme_color</item>         //this is used for the color of the Alphabetical Fast scrollView
<item name="android:fastScrollPreviewBackgroundRight">@drawable/bg_default_focused_holo_light</item> //this is the image or and drawable file you want to set on Alphabetical Fast scrollView

自定义快速滚动输出:-

ouy

关于带有折叠工具栏的 RecyclerView 中的 Android 字母快速 ScrollView ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38507825/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com