首页 文章 精选 留言 我的

精选列表

搜索[下拉列表],共10004篇文章
优秀的个人博客,低调大师

Android SwipeRefreshLayout下拉刷新

SwipeRefreshLayout组件只接受一个子组件:即需要刷新的那个组件。它使用一个侦听机制来通知拥有该组件的监听器有刷新事件发生,换句话说我们的Activity必须实现通知的接口。该Activity负责处理事件刷新和刷新相应的视图。一旦监听者接收到该事件,就决定了刷新过程中应处理的地方。如果要展示一个“刷新动画”,它必须调用setRefrshing(true),否则取消动画就调用setRefreshing(false)。 SwipeRefreshLayout在SDK的v4包下,即使用它时只需导入v4的jar或者依赖v4即可, 在Android Studio中新建项目后即可使用。 新建项目设置布局: <?xml version="1.0" encoding="utf-8"?> <android.support.v4.widget.SwipeRefreshLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/activity_main" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.mazaiting.swiperefreshlayouttest.MainActivity" > <TextView android:id="@+id/textView" android:layout_width="match_parent" android:layout_height="match_parent" android:text="Hello World!" /> </android.support.v4.widget.SwipeRefreshLayout> MainActivity中代码: public class MainActivity extends AppCompatActivity { private SwipeRefreshLayout mSwipeRefreshLayout; private TextView mTextView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mSwipeRefreshLayout = (SwipeRefreshLayout) findViewById(R.id.activity_main); mTextView = (TextView) findViewById(R.id.textView); // 设置转动颜色变化 mSwipeRefreshLayout.setColorSchemeResources( android.R.color.holo_blue_dark, android.R.color.holo_blue_light, android.R.color.holo_green_light, android.R.color.holo_green_light); // 刷新监听 mSwipeRefreshLayout.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() { @Override public void onRefresh() { // 开始转动 mSwipeRefreshLayout.setRefreshing(true); new Thread(new Runnable() { // ------------------- 开启子线程 @Override public void run() { try { Thread.sleep(5000); runOnUiThread(new Runnable() { @Override public void run() { // ------------- 主线程 // 停止转动 mSwipeRefreshLayout.setRefreshing(false); // 停止转动后改变TextView文本 mTextView.setText("Success"); } }); } catch (InterruptedException e) { e.printStackTrace(); } } }).start(); } }); } } 效果图: 效果图.png

优秀的个人博客,低调大师

Android -- 官方下拉刷新SwipeRefreshLayout

V4的兼容包 API 大概就这4个常用的方法。 code 布局 <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" tools:context=".MainActivity" > <android.support.v4.widget.SwipeRefreshLayout android:id="@+id/swipe" android:layout_width="match_parent" android:layout_height="match_parent" > <ListView android:id="@+id/listview" android:layout_width="fill_parent" android:layout_height="wrap_content" /> </android.support.v4.widget.SwipeRefreshLayout> </RelativeLayout> MainActivty @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); listView = (ListView) findViewById(R.id.listview); mSwipeLayout = (SwipeRefreshLayout) findViewById(R.id.swipe); list = new ArrayList<MyTextClass>(); Map<String, String> maps = new HashMap<String, String>(); maps.put("1", "2"); myHandler = new MyHandler(); client = new MyHttpClient(myHandler); myThread = new MyThread(client,"http://192.168.1.4/json/index.php",maps,GETJSON); myHandler.setThread(myThread); myHandler.setHandlerExtraHandleMessage(new MyHandler.HandlerExtraHandleMessage() { @Override public void handleMessage(Message msg) { switch (msg.what) { case GETJSON: String strJson1 = (String) msg.obj; Json json1 = new Json(strJson1); try { list = json1.getMyTextClass(); } catch (JSONException e) { e.printStackTrace(); } myBaseAdapter = new MyBaseAdapter(MainActivity.this, list); listView.setAdapter(myBaseAdapter); break; case REFRESH: String strJson2 = (String) msg.obj; Json json2 = new Json(strJson2); //list.clear(); try { list = json2.getMyTextClass(); } catch (JSONException e) { e.printStackTrace(); } if(myBaseAdapter != null) { myBaseAdapter.setList(list); myBaseAdapter.notifyDataSetChanged(); } else { MyBaseAdapter myBaseAdapter2 = new MyBaseAdapter(MainActivity.this, list); listView.setAdapter(myBaseAdapter2); } mSwipeLayout.setRefreshing(false); break; default: System.out.println("Other Message"); break; } super.handleMessage(msg); } }); Map<String, String> maps2 = new HashMap<String, String>(); maps.put("1", "2"); MyRefreshListener myRefreshListener = new MyRefreshListener(myHandler, maps2, REFRESH); mSwipeLayout.setOnRefreshListener(myRefreshListener); mSwipeLayout.setColorScheme(android.R.color.holo_green_dark, android.R.color.holo_green_light, android.R.color.holo_orange_light, android.R.color.holo_red_light); } 我是天王盖地虎的分割线 本文转自我爱物联网博客园博客,原文链接:http://www.cnblogs.com/yydcdut/p/3922845.html,如需转载请自行联系原作者

优秀的个人博客,低调大师

解决android SwipeRefreshLayout recyclerview 不能下拉

http://stackoverflow.com/questions/25178329/recyclerview-and-swiperefreshlayout 23down vote write the following code inaddOnScrollListenerof theRecyclerView Like this: recyclerView.setOnScrollListener(new RecyclerView.OnScrollListener(){ @Override public void onScrolled(RecyclerView recyclerView, int dx, int dy) { int topRowVerticalPosition = (recyclerView == null || recyclerView.getChildCount() == 0) ? 0 : recyclerView.getChildAt(0).getTop(); swipeRefreshLayout.setEnabled(topRowVerticalPosition >= 0); } @Override public void onScrollStateChanged(RecyclerView recyclerView, int newState) { super.onScrollStateChanged(recyclerView, newState); } });

资源下载

更多资源
Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

用户登录
用户注册