android中如何实现下拉刷新?

2023-12-21

目前我正在开发一个片段,它只是一个带有框架布局的网络视图,问题是,我想做类似的事情下拉刷新(就像列表视图中常见的一些刷新功能一样)。

假设有一个refreshToDo()功能 ,我所需要的只是一个布局(当我拖动主体时,它会显示刷新标题,当标题达到一定高度时,它会调用refreshToDo(),当我释放它时,它会返回顶部并隐藏),但是如何实现呢?谢谢

布局:(包含主要内容和目标内容,可以忽略目标内容,用于在webview中全屏播放视频):

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" >

    <FrameLayout
        android:id="@+id/main_content"
        android:layout_width="match_parent"
        android:layout_height="match_parent" >

        <WebView
            android:id="@+id/webView"
            android:layout_width="match_parent"
            android:layout_height="match_parent" />
    </FrameLayout>

    <FrameLayout
        android:id="@+id/target_view"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="@android:color/black"
        android:visibility="gone" >
    </FrameLayout>

</RelativeLayout>

分段:

public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {

        View rootView = inflater.inflate(R.layout.web_fragment, container,
                false);

        mTargetView = (FrameLayout) rootView.findViewById(R.id.target_view);
        mContentView = (FrameLayout) rootView.findViewById(R.id.main_content);


        mWebView = (WebView) rootView.findViewById(R.id.webView);
        mWebView.setVerticalScrollBarEnabled(false);

        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
            WebView.setWebContentsDebuggingEnabled(true);
        }
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN)
            mWebView.getSettings().setAllowUniversalAccessFromFileURLs(true);

        mWebView.setWebViewClient(new MyWebViewClient(getActivity()));
        mWebView.setWebChromeClient(new MyWebChromeClient(getActivity()));

        mWebView.getSettings().setDomStorageEnabled(true);
        mWebView.getSettings().setPluginState(WebSettings.PluginState.ON);
        mWebView.getSettings().setJavaScriptEnabled(true);
        mWebView.addJavascriptInterface(this, "jsinterface");

        // default go to video page
        mWebView.loadUrl("file://" + getActivity().getFilesDir().toString()
                + StorageUtils.finalfoldername.toString() + "video_list.html");

        return rootView;
    }

如何添加自定义View实现下拉刷新?谢谢


现在Android支持库中有一个官方的小部件SwipeRefreshLayout。它正在做您正在寻找的事情。文档在这里:

https://developer.android.com/reference/android/support/v4/widget/SwipeRefreshLayout.html https://developer.android.com/reference/android/support/v4/widget/SwipeRefreshLayout.html

这是我发现的一个很好的教程:

http://antonioleiva.com/swiperefreshlayout/ http://antonioleiva.com/swiperefreshlayout/

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

android中如何实现下拉刷新? 的相关文章

随机推荐

  • 如何在asp中发送和处理Http Post?

    httpRequest Open POST www example com handle asp False httpRequest setRequestHeader Content Type application x www form
  • 如何在SQL中计算运行余额

    我正在使用嵌入式德比数据库 我想通过计算借方和贷方金额来添加运行余额列 所以请告诉我解决方案代码和图像也可以在下面找到 正如您在图像平衡总计中看到的那样 不准确 SELECT V DATE FLAG V NUM V NARATION sum
  • React 是否保持状态更新的顺序?

    我知道React可能会异步批量执行状态更新以优化性能 因此 您永远不能相信调用后状态会更新setState 但你能相信React吗按照与以下相同的顺序更新状态setState叫做 for 相同的组件 不同的组件 考虑单击以下示例中的按钮 1
  • 如何在 Rails 中的 Google Universal Analytics 跟踪代码中设置 USER_ID?

    以下是我的基于 Rails 的应用程序的 Universal Analytics 跟踪代码 可以在 analytics html erb 它作为部分加载application html erb
  • 将字符串与 Java 中声明为 Final 的 == 进行比较

    我有一个关于 Java 中字符串的简单问题 下面的简单代码段只是连接两个字符串 然后将它们与 String str1 str String str2 ing String concat str1 str2 System out printl
  • Django:如何使用自定义模板制作表单?

    我有一个模型 class Setting models Model class Meta abstract True name models CharField max length 120 primary key True descrip
  • 如何从一张画布复制到另一张画布

    我想复制在一张画布上绘制的图像 details http developer android com reference android graphics Canvas html 进入另一个画布 通常讨论的使用位图的解决方案将不起作用 因为
  • Django ORM - 百分号代表类似

    在我的网站上 用户应该能够过滤数字 例如 123 321 这将匹配 666123 555 321111 或LIKE 123 321 默认情况下django的orm转义 sign https docs djangoproject com en
  • 等待多张图片加载

    我有多个图像要加载 并将它们放入一个数组中 在循环中 加载图像时我会增加计数器 当这个计数器等于我的图像的数组长度时 我想删除加载指示器 我不知道为什么 这不起作用 new Vue el app created let imageLoade
  • Angular 4 服务中的数据,传递给组件

    服务中有一些数据 当我在服务上的对象中有数据时 它工作得很好 但现在我已经连接了数据库连接 数据永远不会到达组件 我希望该服务订阅从数据库返回的数据并定义如下调用 public setPerson ac string void consol
  • 高请求场景下Java Threadpool vs. new Thread

    我有一些用于 REST 服务的旧 Java 代码 该服务对每个传入请求使用单独的线程 IE 主循环将在 socket accept 上循环并将套接字移交给 Runnable 然后 Runnable 将启动自己的后台线程并调用自身运行 这在一
  • 将执行文本/模板模板的结果分配给变量[重复]

    这个问题在这里已经有答案了 type Inventory struct Material string Count uint sweaters Inventory wool 17 tmpl err template New test Par
  • iPhone - 不同应用程序有相同的配置文件吗?

    您可以使用相同的配置文件为 App Store 编译 2 个不同的应用程序吗 我想不是 但只是想知道 我非常确定您不能在 App Store 提交的 appID 中使用通配符 您可以使用类似的方法构建和调试所有应用程序GK46RTKQ4V
  • 通过查询查找组中的最后一行-SQL Server

    我在 SQL Server 中有表 我想找到每组中的最后一行 我尝试使用以下查询 但它没有返回准确的结果 ID列是PK 其他列设置为NOT NULL select ID Name FROM select ID Name max ID ove
  • Rails distance_of_time_in_words 返回“en, about_x_hours”

    我遇到了一个奇怪的问题 希望有人知道问题是什么 使用 distance of time in words 以及 time ago in words 不会返回实际的时间距离 相反 它返回诸如 en about x hours 或 en x m
  • 如何使用 Xcode 4.2 使用 ios 4.2 基础 sdk?

    如何使用 Xcode 4 2 使用 ios 4 2 基础 sdk 我拥有一部 iPhone 4s 和一部装有 ios 4 2 的 iTouch 将 Xcode 升级到 4 2 以与我的 iPhone 4s 配合使用后 我无法再将 Xcode
  • 在 Amazon EC2 微实例中运行 Play 框架应用程序

    我有一个非常基本的玩法 应用程序只处理几个正常的 GET 和 POST 请求并与 MySQL 数据库对话 没什么花哨的 I ran play dist并将 zip 文件传输到我的 EC2 实例 解压后 进入bin文件夹并运行 myapp 我
  • 解析来自 http get 的多部分响应

    我正在开发两个应用程序之间的集成 应用程序 1 使用 HttpClient GetMethod 向应用程序 2 发出请求 应用程序 2 将返回嵌入文件的多部分响应 我认为这是一个简单的练习 但似乎找不到解析 HTTP GET 的多部分响应的
  • Ngrx Effects 规范抛出错误“未初始化测试调度程序”

    尝试使用现有的和最近迁移的 Angular 7 项目运行简单的效果测试 但我收到如下错误 错误 未初始化测试调度程序在 getTestScheduler node modules jasmine marbles es6 src schedu
  • android中如何实现下拉刷新?

    目前我正在开发一个片段 它只是一个带有框架布局的网络视图 问题是 我想做类似的事情下拉刷新 就像列表视图中常见的一些刷新功能一样 假设有一个refreshToDo 功能 我所需要的只是一个布局 当我拖动主体时 它会显示刷新标题 当标题达到一