android – RecyclerView – NotifyItemInsert上没有动画

android – RecyclerView – NotifyItemInsert上没有动画,第1张

概述出于某种原因,当向RecyclerView添加新项目时(应插入列表顶部),除非我向下滚动列表并返回到顶部,并且没有任何动画,否则它将不会显示. (只是出现在列表的顶部,好像它一直在那里).使用正确的动画删除项目可以正常工作. RecyclerViewAdapter: @Overridepublic void onNewDatabaseEntryAdded() { //item added 出于某种原因,当向RecyclerVIEw添加新项目时(应插入列表顶部),除非我向下滚动列表并返回到顶部,并且没有任何动画,否则它将不会显示. (只是出现在列表的顶部,好像它一直在那里).使用正确的动画删除项目可以正常工作.

RecyclerVIEwAdapter:

@OverrIDepublic voID onNewDatabaseEntryAdded() {    //item added to top of the List    notifyItemInserted(0);}public fileVIEwerAdapter(Context context) {    super();    mContext = context;    mDatabase = new DBHelper(mContext);    mDatabase.setonDatabaseChangedListener(this);}

sqlite数据库:

private static OnDatabaseChangedListener mOnDatabaseChangedListener;public static voID setonDatabaseChangedListener(OnDatabaseChangedListener Listener) {    mOnDatabaseChangedListener = Listener;}public long addRecording(String recordingname,String filePath,long length) {    sqliteDatabase db = getWritableDatabase();    ContentValues cv = new ContentValues();    cv.put(DBHelperItem.ColUMN_name_RECORDING_name,recordingname);    cv.put(DBHelperItem.ColUMN_name_RECORDING_file_PATH,filePath);    cv.put(DBHelperItem.ColUMN_name_RECORDING_LENGTH,length);    cv.put(DBHelperItem.ColUMN_name_TIME_ADDED,System.currentTimeMillis());    long rowID = db.insert(DBHelperItem.table_name,null,cv);    if (mOnDatabaseChangedListener != null) {        mOnDatabaseChangedListener.onNewDatabaseEntryAdded();    }    return rowID;}

监听器:

public interface OnDatabaseChangedListener{    voID onNewDatabaseEntryAdded();    voID onDatabaseEntryRenamed();}

编辑:

我应该提一下,如果我使用NotifyDataSetChanged而不是NotifyItemInserted,那么新项目会立即显示,但RecyclerVIEw不会滚动到列表的顶部. (手动必须向上滚动才能看到它).

解决方法 发生这种情况是因为linearlayoutmanager认为该项目是插入第一项之上的.当您不在列表的顶部时,此行为是有意义的,但我知道当您位于列表顶部时,它是不直观的.我们可能会更改此行为,同时,如果linearlayoutmanager.findFirstCompletelyVisibleItemposition()返回0,则可以在插入项后调用linearlayoutmanager.scrollToposition(0). 总结

以上是内存溢出为你收集整理的android – RecyclerView – NotifyItemInsert上没有动画全部内容,希望文章能够帮你解决android – RecyclerView – NotifyItemInsert上没有动画所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1137166.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-30
下一篇 2022-05-30

发表评论

登录后才能评论

评论列表(0条)

保存