RecyclerView的notifyDateSetChanged()等不起作用,必须点击屏幕列表才会刷新的解决方法
之前Android项目中用的是PullToRefreshListView,我就在想是不是这个库不太好用?于是我换成了RecyclerView,结果效果还是一样,数据本来已经刷新了notifyDateSetChanged也执行了,但是列表里的展示还是不变,必须点一下手机屏幕,数据才能刷新出来。【notifyItemChanged()等也同理】
百度了一堆,各种方法也都试了,还是不行,要不就是效果极差,要不就是一点效果都没有。最后查了无数遍代码,终于找到了问题所在:
更新UI要在 主线程 执行
代码示例:
public class MainActivity extends AppCompatActivity implements View.OnClickListener{private static final int CHANGE_TEXT=1;private TextView mText;private Button mBtn_change;//主线程private Handler handler=new Handler(){@Overridepublic void handleMessage(Message msg) {super.handleMessage(msg);switch (msg.what){case CHANGE_TEXT://在这里(主线程)可以进行UI操作mText.setText("HelloJohnnyZhou");break;default:break;}}};@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);mText= (TextView) findViewById(R.id.tv_text);mBtn_change= (Button) findViewById(R.id.btn_change);mBtn_change.setOnClickListener(this);}@Overridepublic void onClick(View v) {switch (v.getId()){case R.id.btn_change://开启一个子线程new Thread(new Runnable() {@Overridepublic void run() {//新建一个Message对象,存储需要发送的消息Message message=new Message();message.what=CHANGE_TEXT;//然后将消息发送出去handler.sendMessage(message);}}).start();break;default:break;}}
}
RecyclerView的notifyDateSetChanged()等不起作用,必须点击屏幕列表才会刷新的解决方法相关推荐
- android recyclerview 横向item 宽度,RecyclerView的item宽度不能全屏显示及线性布局与grid布局切换混乱解决方法...
1.RecyclerView的Item宽度不能全屏显示 出现这种的原因有两种: 1.第一种是在adapter中加载inflater时parent传入为null 2.如果第一种不行,第二种原因就是在Re ...
- 排查IDEA 全局搜索快捷键Ctrl +Shift+F不起作用的原因和解决方法
排查IDEA 全局搜索快捷键Ctrl +Shift+F不起作用的原因和解决方法 参考文章: (1)排查IDEA 全局搜索快捷键Ctrl +Shift+F不起作用的原因和解决方法 (2)https:// ...
- idea修改java和jsp不起作用_使用IDEA编写jsp时EL表达式不起作用的问题及解决方法...
在使用IDEA开发maven+springMVC项目时遇到不加载EL表达式的问题,怎么处理呢?下面小编给大家带来了实现代码,一起看看吧 加载如下JSP代码: Title ${lists.usernam ...
- mvc:interceptor 不起作用的一个解决方法
拦截器配置1: <mvc:annotation-driven /> 在另外的文件(非xxx-servlet.xml)中配置 <mvc:interceptors> <mvc ...
- ie6 z-index不起作用的解决方法
一.概念 z-index伴随着层的概念产生的.网页中,层的概念与photoshop或是flash中层的概念是一致的.熟悉photoshop或是flash的应该知道,层级越高(图层越靠上),越在上面显示 ...
- php垂直对齐,CSS垂直对齐不起作用的原因及解决方法
verticla-align用于调整内联元素的垂直位置,但是有时候它不起作用,本篇文章将来给大家分享关于CSS垂直对齐不起作用的原因和解决方法. 我们先来分析一下导致垂直对齐无效的原因 我想很多人都会 ...
- android 下拉刷新实现方式,Android RecyclerView设置下拉刷新的实现方法
Android RecyclerView设置下拉刷新的实现方法 1 集成 SwipeRefreshLayout 1.1 xml布局文件中使用 android:id="@+id/refresh ...
- php is_subclass_of,PHP_PHP is_subclass_of函数的一个BUG和解决方法,is_subclass_of的作用:
复制代码 - phpStudy...
PHP is_subclass_of函数的一个BUG和解决方法 is_subclass_of的作用: bool is_subclass_of ( object object, string class ...
- Entity Framework默认值字段不起作用解决方法
Entity Framework默认值字段不起作用解决方法 参考文章: (1)Entity Framework默认值字段不起作用解决方法 (2)https://www.cnblogs.com/fox- ...
最新文章
- 转:设置session过期时间
- Flutter 28: 图解 ListView/GridView 混用时滑动冲突小尝试
- python如何修改excel数据库_python学习笔记-day7-2-【python从mysql数据库导数据到excel,读excel,修改excel】...
- 【动态规划】【线段树】 Codeforces Round #426 (Div. 1) B. The Bakery
- EMNLP'20最佳论文揭晓!八块肌肉=能打电话?!
- 80后程序员必须知道的编程语言和它们的创造者
- 什么浏览器好用_手机浏览器不只UC,好用的浏览器还有这些
- 2.图像作为函数 | 裁剪、颜色通道、图像相加_5
- iOS内存管理机制解析
- 应用程序部署策略——虚拟机与容器
- openvswitch dpdk
- 分布式发布订阅模型网络的实现有哪些
- 纯新手DSP编程--5.21--RTDX
- java中解决脏读_JAVA数据脏读
- 动态规划-打气球的最大分数(python实现)
- 迅雷导出ed2k到eMule链接无效处理
- Mac Grapher(图形软件)
- 第四次的面试 C++ 面试 (迷茫) + (复习知识点)
- java 二维表格_实现二维表
- 初吻,他吻了你哪里?