当前位置: 首页 > 知识库问答 >
问题:

在NestedScrollView中使用RecycerView时性能不良

柯昆
2023-03-14

recyclerView.setNestedScrollingEnabled(false);

在Androidmanifest中:

android:windowSoftInputMode="adjustNothing"
public class RecyclerContactAdapter extends RecyclerView.Adapter<RecyclerContactAdapter.ViewHolder> {

    private List<MobileContact> contacts;
    private Context context;

    public RecyclerContactAdapter() {
        contacts = new ArrayList<>();
    }

    @Override
    public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        this.context = parent.getContext();
        View view = LayoutInflater.from(context)
                .inflate(R.layout.item_recycler_contact, parent, false);

        return new ViewHolder(view);
    }

    @Override
    public void onBindViewHolder(ViewHolder holder, int position) {
        //set data for view
    }

    @Override
    public int getItemCount() {
        return contacts.size();
    }

    protected class ViewHolder extends RecyclerView.ViewHolder {
        private TextView tvAlphabetHeader;
        private CircleImageView civAvatar;
        private TextView tvContactName;
        private TextView tvStatus;
        private CheckBox cbInvited;
        private RelativeLayout rlAlphabetHeader;
        private RelativeLayout rlContainer;

        protected ViewHolder(View itemView) {
            super(itemView);
            tvAlphabetHeader = itemView.findViewById(R.id.item_recycler_contact_tv_alphabet_header);
            civAvatar = itemView.findViewById(R.id.item_recycler_contact_civ_avatar);
            tvContactName = itemView.findViewById(R.id.item_recycler_contact_tv_name);
            tvStatus = itemView.findViewById(R.id.item_recycler_contact_tv_status);
            cbInvited = itemView.findViewById(R.id.item_recycler_contact_cb_contact);
            rlAlphabetHeader =  itemView.findViewById(R.id.item_recycler_contact_rl_alphabet);
            rlContainer = itemView.findViewById(R.id.item_recycler_contact_rl_contact);
        }
    }

    public void addAll(List<MobileContact> mobileContacts) {
        this.contacts.clear();
        this.contacts.addAll(mobileContacts);
        notifyDataSetChanged();
    }

    public void add(MobileContact mobileContact) {
        this.contacts.add(mobileContact);
    }

    public List<MobileContact> getContacts() {
        return this.contacts;
    }

}

暂时还没有答案

 类似资料:
  • 如何在中使用?设置适配器后,内容不可见。 更新布局代码已更新。

  • 当我将RecycerView放入嵌套的scrollview中时,屏幕总是跳到RecycerView的顶部,而不是页面的顶部。这里有一个简单的例子。 在这个示例中,我在Recyview上有一个350dp高的空视图,因为您需要在Recyview上有一些内容才能明显显示出来。Recyview iteself包含100个虚拟文本视图。 启动活动后,滚动位于Recyview的顶部,而不是页面的顶部。这一定是

  • 但是大多数投票解决方案的问题是,它调用的所有项,因此,例如,如果它是一个无休止的RecycerView,当用户到达列表的末尾时,您希望发出网络请求,那么使用该解决方案,会重复调用server,因为它会自动到达的最后一项。 不管怎样,如何设置参数以便我可以将放入中(实际上,我希望将像framelayout或RelationVelayout这样的viewgroup作为nestedscrollview的

  • 我创建了基于创建列表和卡片指南的RecolyerView示例。我的适配器有一个模式实现,只用于扩展布局。 问题是滚动性能不佳。这在一个只有8个项目的RecycleView中。 在一些测试中,我验证了在Android L中不会出现这个问题。但在KitKat版本中,性能的下降是明显的。

  • 我在一个布局文件中有三个回收器视图,它们具有水平对齐的layoutmanager,这些回收器视图在nestedscrollview中,我也将三个回收器视图中的每一个的nestedscroll设置为false。 这是一个片段的布局,我从MainActivity的一个视图寻呼机中调用了它。它的布局是这样的 问题是,当试图在此布局中滚动时,滚动并不顺畅。在尝试垂直和水平滚动时,它会变得非常滞后。这里可能

  • 我在里面使用了。我还将设置为false for 支持较低的API