Android 每个 Activity 中的通用进度条

2024-04-27

我已经修改了解决方案。我可以获得进度条,但进度条永远不会隐藏

这是创建具有相对布局的进度条的类

public class ProgressBarHandler {
    private ProgressBar mProgressBar;
    private Context mContext;
    private View _baseView;
    private View _hideView;
    public ProgressBarHandler(Context context,View baseView, View hideView) {
        mContext = context;
        _baseView = baseView;
        _hideView = hideView;

        ViewGroup layout = (ViewGroup) _baseView;//((Activity) context).findViewById(android.R.id.content).getRootView();

        mProgressBar = new ProgressBar(context, null, android.R.attr.progressBarStyleLarge);
        mProgressBar.setIndeterminate(true);

        RelativeLayout.LayoutParams params = new
                RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.MATCH_PARENT, RelativeLayout.LayoutParams.MATCH_PARENT);

        RelativeLayout rl = new RelativeLayout(context);

        rl.setGravity(Gravity.CENTER);
        rl.addView(mProgressBar);

        layout.addView(rl, params);

        hide();
    }

    public void show() {
        mProgressBar.setVisibility(View.VISIBLE);
        _hideView.setVisibility(View.INVISIBLE);
    }

    public void hide() {
        mProgressBar.setVisibility(View.INVISIBLE);
        _hideView.setVisibility(View.VISIBLE);
    }
}

这是我的 xml 文件

<FrameLayout xmlns:tools="http://schemas.android.com/tools"
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:descendantFocusability="beforeDescendants"
    android:focusableInTouchMode="true"
    android:orientation="vertical"
    android:id="@+id/profile_activity">


<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
    android:id="@+id/layout_to_hide"
android:layout_height="match_parent"
android:fitsSystemWindows="true">

<android.support.design.widget.AppBarLayout
    android:id="@+id/app_bar_layout"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:fitsSystemWindows="true"
    android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">

    <android.support.design.widget.CollapsingToolbarLayout
        android:id="@+id/collapsing_toolbar"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:fitsSystemWindows="true"
        app:expandedTitleTextAppearance="@android:color/transparent"
        app:contentScrim="?attr/colorPrimary"
        app:layout_scrollFlags="scroll|exitUntilCollapsed">

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

            <RelativeLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:background="@mipmap/wallpaper"
                android:orientation="vertical">

                <com.deerwalk.androidcommon.RoundedImageView
                    android:id="@+id/profile_image"
                    android:layout_width="100dp"
                    app:civ_border_color="#EEEEEE"
                    app:civ_border_width="4dp"
                    app:civ_shadow="true"
                    app:civ_shadow_radius="10"
                    app:civ_shadow_color="#8BC34A"
                    android:layout_height="100dp"
                    android:layout_alignWithParentIfMissing="false"
                    android:layout_centerInParent="true"
                    android:layout_gravity="center"
                    android:layout_margin="20dp"
                    android:src="@drawable/avatar" />

                <LinearLayout
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_marginTop="10dp"
                    android:layout_below="@+id/profile_image"
                    android:orientation="vertical">

                    <TextView
                        android:layout_width="wrap_content"
                        android:layout_height="match_parent"
                        android:id="@+id/txt_name"
                        android:layout_gravity="center_horizontal"
                        android:text=""
                        android:textColor="@color/white" />

                    <TextView
                        android:layout_width="wrap_content"
                        android:layout_height="match_parent"
                        android:id="@+id/txt_dob"
                        android:layout_gravity="center_horizontal"
                        android:text=""
                        android:layout_marginTop="5dp"
                        android:textColor="@color/white" />
                </LinearLayout>
            </RelativeLayout>



        </LinearLayout>
    </android.support.design.widget.CollapsingToolbarLayout>
</android.support.design.widget.AppBarLayout>


<android.support.v7.widget.RecyclerView
    android:id="@+id/recyclerView"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    app:layout_behavior="@string/appbar_scrolling_view_behavior">


</android.support.v7.widget.RecyclerView>

</android.support.design.widget.CoordinatorLayout>
</FrameLayout>

这是调用进度条的活动类

public class ProfileActivity extends AppCompatActivity {

    FrameLayout profile_root_layout;
    CoordinatorLayout layot_to_hide;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_profile);
        profile_root_layout = (FrameLayout) findViewById(R.id.profile_activity);
        layot_to_hide = (CoordinatorLayout) findViewById(R.id.layout_to_hide);
         new userProfileTask().execute();
    }




    public class userProfileTask extends AsyncTask<Void, Void, Boolean> {
        @Override
        protected void onPreExecute() {
            new ProgressBarHandler(getBaseContext(),profile_root_layout,layot_to_hide).show();
            super.onPreExecute();
        }

        @Override
        protected Boolean doInBackground(Void... params) {
            try {
                Thread.sleep(2000);

            } catch (InterruptedException e) {
                e.printStackTrace();
            }

            return null;
        }

        @Override
        protected void onPostExecute(Boolean aBoolean) {

            new ProgressBarHandler(getBaseContext(),profile_root_layout,layot_to_hide).hide();
        }
    }

}

进度条永远不会隐藏。我在哪里做错了。


创建一个单独的类,然后创建一个带有参数的静态方法,参数包含 Activity ...在您的活动上调用此方法并在其中传递活动名称

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

Android 每个 Activity 中的通用进度条 的相关文章

  • SQL状态[99999];错误代码[17004];无效的列类型:1111 使用 Spring SimpleJdbcCall

    大家好 我正在使用 spring 简单的 JDBC 模板来调用 oracle 过程 下面是我的代码 步骤 create or replace PROCEDURE get all system users pi client code IN
  • Android:Enter 或 Tab 键仍然使用 jetpack compose 在密码输入字段中输入值

    当我输入或 Tab 键时 仍然使用 jetpack compose 在密码输入字段中输入值 下面是我的代码片段 val focusRequester FocusRequester createRefs TextField value tex
  • 通过两个标准比较两个对象[重复]

    这个问题在这里已经有答案了 我有一个包含布尔字段的类用户 我想对用户列表进行排序 我希望布尔字段等于 true 的用户位于列表的顶部 并且我想按名称对它们进行排序 这是我的课程 public class User int id String
  • 没有找到适合 jdbc.sqlite 的驱动程序

    所以首先我之前看到过这个问题 我查看了以前的答案并尝试用它来解决我的问题 但是我做不到 我正在创建一个图书馆系统 并为注册类和登录类编写了代码 并为数据库创建了一个类 当我尝试运行该程序时 我收到一条消息 指出没有找到合适的驱动程序 后跟数
  • 如何在运行时获取类名,但仅获取类名?

    如何在运行时获取类名 但仅获取实际的类名而不是整个 com xyz etc 我的意思只是最后一个句点之后的名字部分 您必须将以下代码片段用于对象 yourObject getClass getSimpleName 或供课堂使用 yourCl
  • 不兼容的类型:HomeFragment 无法转换为 Android 中的 Fragment

    我在这部分代码中遇到错误 private void displayView int position update the main content by replacing fragments Fragment fragment null
  • Android快速查找网络上所有本地设备

    我正在制作一个 Android 应用程序 需要能够查看本地网络设备 名称或 IP 目前我可以扫描网络并找到设备的本地IP 然而 由于时间太长 用户在搜索网络时会看到黑屏加载几分钟 这是我当前正在使用的代码 private ArrayList
  • 如何将测试文件夹添加到旧的 Android Studio 项目

    我在将用于测试的项目结构添加到 Android Studio 中的旧 Android 项目中时遇到一些问题 当您在 Android Studio 中创建新项目时 您将获得从一开始就创建的用于测试的目录 src test java for u
  • Java 支持多行字符串吗?

    来自 Perl 我肯定缺少在源代码中创建多行字符串的 here document 方法 string lt lt EOF create a three line string text text text EOF 在 Java 中 当我从头
  • 在使用 Ant/Jenkins 时,如何查看同一 Java 项目的不同 Subversion 标签/分支?

    这是我的开发配置 颠覆之下 我有我的project X trunk 带有我最新的开发人员 我有我的project X tags 具有不同的版本 我正在考虑添加一个分支文件夹 我正在使用 Jenkins 使用 Ant 脚本构建我的projec
  • 无法解析符号“servlet”

    我有一个新手大问题 当我尝试以下操作时 servlet 变成红色并指示 无法解析符号 servlet import javax servlet http import javax servlet ServletException 我的 ap
  • Java FTPS 无法检索文件列表(FileZilla 客户端工作正常)

    我正在使用 Apache Commons Net v3 5 和 Java 8 连接到远程 FTPS 站点 即在互联网上 我可以轻松连接 Windows 10 计算机上的 FileZilla 客户端 但我的 Java 程序无法完成相同的步骤
  • 信任所有将文件发送到 https Web 服务的 java 类

    我需要编写自己的类来告诉 mule 与服务 wsdl 的 https 连接已验证 我的 mule 项目已经接近完成 但最后一块丢失了 在特定的 url 发送文件 我想要实现的目标 建立连接并将 xml 发送到目标 url 读取 xml 格式
  • 在android中重叠屏幕

    在下面的布局中 我有一个名为扫描设备的文本视图 其中显示设备名称 但我的设备列表显示在屏幕上方 任何人都可以帮助我如何滚动视图应该在设备列表内 滚动屏幕时 它显示设备列表 但它显示在屏幕上方 想要显示在屏幕内
  • Android Studio 不允许我更改 SDK 位置

    我打开 Android Studio 然后我打开 SDK 管理器 我拥有最新版本 但是我的 SDK 平台需要 Android 6 0 它甚至不让我点击任何东西 在此图像中 您可以看到文本和复选框变色 我无法单击 SDK 平台内的任何内容 甚
  • 压缩 Log4j 文件

    是否可以压缩日志文件 我通过 RollingFileAppender 进行 log4j 附加功能 http logging apache org log4j extras 对此表示支持 只需将以下内容添加到您的RollingFileAppe
  • 在java中获取调用层次结构

    我在追踪错误时遇到了很大的困难 了解哪个方法调用了某个方法会很有帮助 有没有一种简单的方法可以从java获取调用层次结构 Java 是应用程序的一小部分 因此我无法在 eclipse net beans 中编译和运行整个应用程序 因此我无法
  • Ionic Cordova Build Android 未找到已安装的构建工具

    我在 Ubuntu 16 04 上的 Android 上构建 ionic 应用程序时遇到问题 这是我为了实现这一目标所做的一步 下载Android Studio 下载Android SDK 在 bashrc 和 bash profile 中
  • 在Java中,如何在每次进入或退出给定对象的监视器时记录一条消息?

    我正在尝试调试一些使用一些自定义引用计数 锁定的 C Java 绑定 我想让 JVM 在每次给定对象进入或退出其监视器时打印一条消息 有什么办法可以做到这一点吗 基本上 我想要这个 synchronized lock System out
  • 查找手动注册(混淆)的本机函数地址

    我试图理解一个 Android 应用程序 其中包含一个名为foo在班上com app Bar 课堂内Bar有一个加载共享对象的静态子句System loadLibrary libfoo so 我认为是用它构建的 f可见性 隐藏 https

随机推荐