Android ProgressBar 的样式类似于 SwipeRefreshLayout 中的进度视图

2024-03-10

I use android.support.v4.widget.SwipeRefreshLayout在我的 Android 应用程序中。它包裹着一个ListView。列表视图的内容是从服务器下载的。

当用户向下滑动以从服务器重新加载数据时,会显示进度视图。进度视图看起来像一个在动画过程中不断增大和缩小的圆圈。看来这个进度视图的样式不能自定义太多。不过,我对它的内置风格很满意。

我还在初始数据加载期间显示相同的进度动画。这可以通过调用来实现mySwipeRefreshLayout.setRefreshing(true)。这也完全没问题。

但是,我想通过整个应用程序显示相同的进度指示。考虑例如另一个看起来像带有提交按钮的表单的活动。既没有一个ListView nor a SwipeRefreshLayout在这种形式的活动中。当提交的数据传输到服务器时,应该显示一些进度指示。我想显示一个进度条,其动画与 SwipeRefreshLayout 中的动画相同。

有没有一种简单干净的方法可以让两个应用程序具有相同的进度指示器SwipeRefreshLayout以及不包含任何列表视图和刷新布局且不支持任何滑动手势的表单活动?

Thanks.


但是,我想通过以下方式显示相同的进度指示 整个应用程序。考虑例如另一项看起来像表单的活动 提交按钮。中既没有 ListView 也没有 SwipeRefreshLayout 这种形式的活动。应该显示一些进度指示 提交的数据被传输到服务器。我想展示一个 进度条具有与 SwipeRefreshLayout 相同的动画。

是的,你可以使用SwipeRefreshLayout表现出像ProgressDialog当按钮点击时。检查下面。

我已经添加了SwipeRefreshLayout在我的布局文件中仍然没有ListView or ScrollView。就像下面一样

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    app:layout_behavior="@string/appbar_scrolling_view_behavior"
    tools:context="niu.com.djandroid.jdroid.androidstack.MainActivity"
    tools:showIn="@layout/activity_main">

    <android.support.v4.widget.SwipeRefreshLayout
        android:id="@+id/activity_main_swipe_refresh_layout"
        android:layout_width="match_parent"
        android:layout_height="wrap_content">

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:orientation="vertical">

            <TextView
                android:id="@+id/textView"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Hello World!" />

            <SeekBar
                android:id="@+id/seekBar"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginTop="54dp" />

            <Button
                android:id="@+id/button"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="New Button" />
        </LinearLayout>
    </android.support.v4.widget.SwipeRefreshLayout>


</LinearLayout>

现在在我的活动中我使用了AsyncTask以显示SwipeRefreshLayout。也使用mSwipeRefreshLayout.setOnRefreshListener(null)停止滑动手势。

@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        mSwipeRefreshLayout = (SwipeRefreshLayout) findViewById(R.id.activity_main_swipe_refresh_layout);


        mSwipeRefreshLayout.setOnRefreshListener(null);

        ((Button) findViewById(R.id.button)).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                // mSwipeRefreshLayout.setRefreshing(true);
                // call AsyncTask
                new LongOperation().execute("");
            }
        });

    }

    private class LongOperation extends AsyncTask<String, Void, String> {

        @Override
        protected String doInBackground(String... params) {
            for (int i = 0; i < 5; i++) {
                try {
                    Thread.sleep(1000);
                } catch (InterruptedException e) {
                    Thread.interrupted();
                }
            }
            return "Executed";
        }

        @Override
        protected void onPostExecute(String result) {
            // stop mSwipeRefreshLayout
            mSwipeRefreshLayout.setRefreshing(false);
        }

        @Override
        protected void onPreExecute() {
            // start mSwipeRefreshLayout
            mSwipeRefreshLayout.setRefreshing(true);
        }

        @Override
        protected void onProgressUpdate(Void... values) {
        }
    }

编辑:15/02/20 4年后,这里有很好的解释安卓开发者网站 https://developer.android.com/training/swipe/add-swipe-interface

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

Android ProgressBar 的样式类似于 SwipeRefreshLayout 中的进度视图 的相关文章

  • 如何在再次恢复应用程序时不重新加载webview?

    我做了一个网络视图应用程序 一切都运转良好 但是 当用户点击后退按钮并打开 恢复 应用程序时 它会重新加载 Web 视图 我该如何预防呢 MainActivity java public class MainActivity extends
  • Android 从 C++ 端播放原始音频

    我需要能够在 Android 系统的 C 端以自定义文件格式传输音频 我正在致力于移植自定义媒体播放器 并且需要能够打开自定义文件并从中传输音频 这很重要 因为我认为从性能角度来看将整个播放器移植到 JAVA 是不可行的 并且通过 JNI
  • 如何在 M1 Mac 上运行的模拟器上运行旧版 Android 版本(例如 API 级别 21)?

    虽然现在有一个适用于 M1 mac 的 Android Studio 和支持arm架构的Android模拟器镜像 https stackoverflow com questions 64907154 android studio emula
  • 使用 setText 更改文本后如何更新屏幕?

    现在我正在使用以下代码来更新TextView txtMain setText new text 该代码执行后 屏幕不会更新新文本 有没有办法可以强制文本立即更新 该代码执行后 屏幕不会更新新文本 一旦您将控制权归还给 Android 就应该
  • Auto-value-gson出现接口错误,注册一个InstanceCreator?

    我有一个如下所示的接口类 public interface Species String name And a Human实现的类 AutoValue使用类型适配器 AutoValue public abstract class Human
  • Google 地图位于活动的中间区域

    我正在使用 Android studio 2 1 2 我检查了一下 大多数问题要么使用旧版本的 Android studio 要么使用一些旧的类 这些类不适用于我的情况 从文件 gt 新项目 gt 我使用了选项Google Maps Act
  • Android:文本淡入和淡出

    我已阅读此 stackoverflow 问题和答案 并尝试实现文本淡入和淡出 Android中如何让文字淡入淡出 https stackoverflow com questions 8627211 how to make text fade
  • Android 辅助功能服务检测通知

    我试图让我的应用程序在显示通知时进行检测 我已在设置应用程序中启用它并且onServiceConnected确实接到电话 但是当我创建通知或通过 gmail 应用程序接收电子邮件时 什么也没有发生 onAccessibilityEvent没
  • RecyclerView 在聊天屏幕中的 notificationDataSetChanged 上滚动到顶部

    我正在尝试使用 recyclerView 创建消息传递类型的屏幕 该屏幕将从底部开始 并在用户到达聊天顶端时加载更多数据 但我面临着这个奇怪的问题 我的 recyclerView 在调用 notificationDataSetChanged
  • Android Gradle 问题 - Flutter / Dart

    我的 Gradle 同步有问题 我使用 IntelliJ 和 Android Studio 构建 Flutter Dart 应用程序 我添加了 2 个新的依赖项 现在 Gradle 出现了问题 在 Android Studio 中一切正常
  • 将非 Android 项目添加到 Android 项目

    我在 Eclipse 中有三个项目 Base Server 和 AndroidClient Base和Server是Java 1 7项目 而AndroidClient显然是一个android项目 基础项目具有在服务器和 Android 客户
  • react-native android fontFamily 不生效

    问题一 我在index android js的欢迎样式中添加了fontFamily 但没有效果 fontFamily 真的可以在 Android 上使用吗 欢迎 字体大小 20 fontFamily roboto thin 文本对齐 居中
  • Jetpack Compose 中复选框中的透明复选标记

    在我的 Compose 应用程序中 我需要创建一个圆形复选框 我已经通过下面的代码实现了这一点 Composable fun CircleCheckBox isChecked Boolean modifier Modifier Modifi
  • Android 为什么这不会抛出错误的线程异常?

    我的印象是视图只能从主线程操作 但是 为什么这不会崩溃 public class MainActivity extends Activity TextView tv Override protected void onCreate Bund
  • 为什么 Google 建议将库复制到您的树中?

    谷歌的Play 服务 API 的使用说明 http developer android com google play services setup html 例如 说 将 extras google google play service
  • Android Studio代理设置构建错误

    每当我尝试在 Android Studio 中构建应用程序时 都会收到以下错误 Error 169 254 16 169 254 16 Will ignore proxy settings for these hosts 我收到错误 5 次
  • 找不到数据库路径是不可能的

    我对 android 开发很陌生 现在我正在尝试通过扩展 SQLiteOpenHelper 的类创建数据库 我确信数据存储在我的 Nexus 7 我用来测试应用程序的设备 上的某个位置 但是我找不到数据库的路径 我四处寻找其他类似的问题 所
  • 在android中从SD卡上传图像到facebook

    我无法从 SD 卡上传 Facebook 上的图像 我使用了下面的代码 但它没有给我错误 但同时它没有上传图像 byte data null try FileInputStream fis new FileInputStream filep
  • 如何模拟ARM处理器运行环境并加载Linux内核模块?

    我尝试加载我的vmlinux into gdb并使用 ARM 内核模拟器 但我不明白为什么我会得到Undefined target command sim 这是外壳输出 arm eabi gdb vmlinux GNU gdb GDB 7
  • View.post(),以及当Runnables被执行时

    我最初的问题是需要知道我的根的高度和宽度View这样我就可以进行程序化的布局更改 就我的目的而言 我不一定需要在onCreate 对于我来说 以编程方式添加我的孩子就足够了View根布局完成后 因此我很乐意使用onWindowFocusCh

随机推荐

  • 注册一个全局钩子,检测鼠标是否拖动文件/文本

    我知道有可能为鼠标注册全局钩子 http www codeproject com KB cs globalhook aspx移动 按钮单击 滚动等 但我想知道是否有任何方法可以检测用户是否实际上使用全局挂钩拖动文件或文本 或其他内容 似乎找
  • 从三地址代码到 JVM 字节码的代码生成

    我正在研究 Renjin 的字节码编译器 R 代表 JVM 并尝试将中间三地址码 TAC 表示形式转换为字节码 我查阅过的所有有关编译器的教科书都讨论了代码生成期间的寄存器分配 但我还没有找到任何用于在基于堆栈的虚拟机 如 JVM 上生成代
  • 向 ggplot 添加图例

    这个问题是这篇文章的后续问题 上一篇文章 https stackoverflow com questions 21531230 using geom path from ggplot library 我有12个变量 M1 M2 M12 为此
  • 将位图转换为多边形 - (反向光栅化)[关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 给定一个位图图像 上面有一些纯色斑点 您将使用什么算法来构造与斑点形状相同的多边形 这可以通过多个步骤完成 稍后可以通过最佳拟合算法来切割高分辨
  • 如何在 WPF 应用程序中构建动态数据输入表单?

    我正在计划一个 WPF 应用程序 它将 能够创造动态数据输入表格 这意味着表单从数据库中的数据而不是从 XAML 获取要显示的字段及其顺序等 如果可能的话使用 MVVM 模式 我计划这样做 在客户数据输入视图中 我将设置数据上下文
  • 离子应用程序 | Firebase Crashlytics 无法与崩溃报告配合使用?

    我在我们的 Ionic 应用程序中使用 ionic native firebase 插件 并且该插件中包含崩溃报告 由于 Firebase 崩溃报告在 9 月 9 日之后将不再可用 因此我们正在尝试切换到 Firebase Crashlyt
  • 无法使用 C# 将 [] 索引应用于“System.Array”类型的表达式

    我正在尝试使用包含字符串数组的列表 但是当我尝试使用方括号访问数组元素时 我收到错误 我的数组列表声明如下 public List
  • 在 Valgrind 下运行 Eclipse

    这里有人成功运行 Eclipse 吗Valgrind http valgrind org 我正在与涉及 JNI 代码的特别棘手的崩溃作斗争 并希望 Valgrind 或许可以 再次 证明其卓越性 但是当我在 Valgrind 下运行 Ecl
  • nltk 函数计算某些单词的出现次数

    nltk书中有一个问题 使用 state union 语料库阅读器阅读国情咨文演讲的文本 计算每个文档中男性 女性和人物的出现次数 随着时间的推移 这些词的使用发生了什么变化 我想我可以使用像 state union 1945 Truman
  • Selenium WebDriver 中的 DesiredCapability 有什么用?

    Selenium WebDriver 中的 DesiredCapability 有什么用 我们什么时候想使用它以及如何使用 举例回答将不胜感激 您应该阅读有关的文档所需能力 https github com SeleniumHQ selen
  • 终端进程命令无法启动退出代码:0 和退出代码:2

    Visual Studio 代码终端无法工作 捷径ctrl 因为终端不工作 Error The terminal process terminated with exit code 0 终端进程命令 C WINDOWS System32 W
  • t.Cleanup 有什么用?

    问题 我想知道的用例t CleanupGo1 14中引入 与使用 defer 相比 t Cleanup 有何便利 https golang org pkg testing T Cleanup https golang org pkg tes
  • 图像文件的加密与解密

    结合我的另一个question https stackoverflow com questions 12131627 image encryption decryption 并且在更改了这一小部分代码之后 FileOutputStream
  • 使用 Twilio 和 SIP 进行 SMS 消息传递

    我正在尝试使用 Twilio 在我的 iPhone 上发送和接收短信 我已设置呼入和呼出呼叫遵循这些说明 https stackoverflow com questions 48346740 how do i forward a twili
  • Azure Functions 错误 - 无法将参数绑定到字符串类型

    我正在尝试使用 Azure 函数将文件保存到 FTP json是这样的 type apiHubFile name outputFile path folder ps DateTime txt connection ftp FTP direc
  • 如何读入边列表以制作 scipy 稀疏矩阵

    我有一个大文件 其中每行都有一对 8 个字符串 就像是 ab1234gh iu9240gh 在每行上 这个文件实际上代表了一个图 每个字符串都是一个节点 ID 我想读入文件并直接制作一个 scipy 稀疏邻接矩阵 然后 我将使用 pytho
  • “没有这样的模块‘Alamofire’”Xcode 无法识别 Alamofire 框架

    我意识到在其他问题中也提出了同样的错误 例如here https stackoverflow com questions 25817479 cannot install alamofire in new xcode project no s
  • CakePHP 仅在输入数据时进行表单验证

    我正在尝试上传其中一个模特的照片 并且当我进入编辑模式时 当用户只想编辑与该记录相关的文本时 它仍然要求我上传照片 以下是我的验证规则 display photo gt array uploadError gt array rule gt
  • 读取音频文件信息php

    如何从声音文件中读取比特率 长度等信息 不同的文件格式 mp3 wmw 等 我想那里有一些图书馆 课程 也许我可以尝试一下 有什么建议么 getID3 http getid3 org 是一个 PHP 脚本 可以从 MP3 和其他多媒体文件格
  • Android ProgressBar 的样式类似于 SwipeRefreshLayout 中的进度视图

    I use android support v4 widget SwipeRefreshLayout在我的 Android 应用程序中 它包裹着一个ListView 列表视图的内容是从服务器下载的 当用户向下滑动以从服务器重新加载数据时 会