gpt4 book ai didi

android - 滞后的 RecyclerView

转载 作者:行者123 更新时间:2023-11-29 19:09:35 25 4
gpt4 key购买 nike

我的 recyclerview 滚动有延迟。当我通过触摸 Recyclerview 开始滚动时它会滞后,但从其上方的 View 开始时不会滞后。我还在 recyclerview 上禁用了嵌套滚动。

这是我的布局:

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_height="match_parent"
android:layout_width="match_parent"
xmlns:app="http://schemas.android.com/apk/res-auto">

<android.support.v4.widget.NestedScrollView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scrollbars="vertical"
android:overScrollMode="never">

<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:focusable="true"
android:focusableInTouchMode="true">

<TextView
android:layout_width="match_parent"
android:layout_height="200dp"
android:text="HAHHAHA"/>

<android.support.v7.widget.RecyclerView
android:id="@+id/mRecyclerViewMain"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:layout_behavior="@string/appbar_scrolling_view_behavior"
android:background="@android:color/transparent">

</android.support.v7.widget.RecyclerView>


</LinearLayout>

</android.support.v4.widget.NestedScrollView>


</FrameLayout>

这是一个video到滞后。就像滚动跳过了一些布局。

最佳答案

像这样修改你的xml:

 <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_height="match_parent"
android:layout_width="match_parent"
xmlns:app="http://schemas.android.com/apk/res-auto">


<android.support.v7.widget.RecyclerView
android:id="@+id/mRecyclerViewMain"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:layout_behavior="@string/appbar_scrolling_view_behavior"
android:background="@android:color/transparent">

</android.support.v7.widget.RecyclerView>

</FrameLayout>

并在 recyclerView 的 header 中设置你的 textView,它会解决你的问题

<TextView
android:layout_width="match_parent"
android:layout_height="200dp"
android:text="HAHHAHA"/>

在适配器类中为标题和项目列表设置 viewType

@Override
public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
if (layoutInflater == null)
layoutInflater = LayoutInflater.from(parent.getContext());

if (viewType == 0) {
// bind your headerview
}
if (viewType == 1) {
//bind your recyclerview
}
}

@Override
public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
if (holder instanceof HeaderHolder)
// viewHolder for header view
if (holder instanceof ListHolder) {
// viewholder for list
}
}

使用这个你可以传递viewType

@Override
public int getItemViewType(int position) {

if (position == 0)
return 0;
else if (ArrayList.size() == 0)
return 1;

}

关于android - 滞后的 RecyclerView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45852952/

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