【问题标题】:ProgressBar at the bottom of gridview网格视图底部的进度条
【发布时间】:2012-11-28 09:49:38
【问题描述】:

我有一个 GridView,它第一次显示了 15 个视图的网格。然后,单击一个按钮,我再添加 5 个网格视图。所以,我的问题是:当这 5 个视图正在加载时,如何在页面底部添加一个 ProgressBar?就像一个微调器加载和 5 个视图得到更新。

嗨,我有一个标签主机 tabwidget,用于在框架布局内的标签和网格视图。现在如果我想要进度条,那么我是否需要在框架布局之后或在框架 laoyout 内包含这个线性布局?

【问题讨论】:

    标签: android gridview progress-bar


    【解决方案1】:

    在 XML 中的 GridView 下方添加此内容。

    <LinearLayout
        android:id="@+id/linlaProgressBar"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:orientation="horizontal" >
    
        <ProgressBar
            style="@style/Spinner"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:padding="2dp" />
    </LinearLayout>
    

    在您正在加载数据的Activity 中(假设它是AsyncTask),在您的onPreExecute() 中显示它:

    @Override
    protected void onPreExecute() {
        // SHOW THE BOTTOM PROGRESS BAR (SPINNER) WHILE LOADING MORE PHOTOS
        linlaProgressBar.setVisibility(View.VISIBLE);
    }
    

    onPostExecute() 中,隐藏它:

    @Override
    protected void onPostExecute() {
        // SHOW THE BOTTOM PROGRESS BAR (SPINNER) WHILE LOADING MORE PHOTOS
        linlaProgressBar.setVisibility(View.GONE);
    }
    

    如果您没有使用AsyncTask,则在开始下载数据的方法开始时将可见性设置为View.VISIBLE,并在设置@987654333之后或之前将其设置为View.GONE @。

    编辑:添加附加信息。

    几件事。

    1. 您正在从 Internet 下载数据,我建议您切换到 AsycnTask 而不是使用传统的 () Method
    2. 几天前在这里查看我对类似问题的回答:https://stackoverflow.com/a/13265776/450534

    在该答案中,您将找到适合您确切需求的完整解决方案。好吧,几乎完全无论如何。您可能需要自己进行一些修改并适应一些事情。但总的来说,它会回答你所有的问题。我在我的应用程序中使用它,它们的功能就像你说的那样,底部的 Google Play 正在加载文本。它真的是完整的。 :-)

    【讨论】:

    • 非常感谢..它工作了..但我需要的一件事是这个线性布局必须附加到网格视图..就像他向上滚动时应该附加加载符号然后应该消失..
    • @user1340801:只要数据正在加载,它就会一直显示。完成后,View.GONE 将隐藏它。
    • 我明白了..我需要将它附加到上面的 griview..就像他们在 google play 中一样,当您滚动 gridview 时,您的布局由带有加载的进度条组成..跨度>
    • @user1340801:所以当你滚动到右下角时,正在加载...
    • 您是否使用AsyncTask 来执行这些功能?
    【解决方案2】:

    您需要为此创建自定义视图并将其膨胀并添加为 gridview 中的底部视图

    <RelativeLayout
           android:layout_width="fill_parent"
           android:layout_height="wrap_content"
    >
    
    <Button android:text="Load"
           android:layout_width="wrap_content"
           android:layout_height="wrap_content"
           android:layout_centerInParent="true"
    />          
    
    <ProgressBar 
           android:layout_width="25.0dip"
           android:layout_height="25.0dip"
           android:layout_centerInParent="true"
           android:visibility="gone"
    />
    
    </RelativeLayout>
    

    现在膨胀这个视图并在 gridview 底部显示进度条 当您单击可见的进度条时,您可以将按钮设置为底部

    【讨论】:

      【解决方案3】:

      只需在布局中添加ProgressBar,将其可见性设置为VISIBLEGONE,只要您想显示/隐藏即可。

      【讨论】:

        【解决方案4】:

        在 GridView 的 xml 中添加一个并设置其属性 "alignParentRight = true" 和 "visibility = invisible" 。在您的活动中,使用异步任务类并在其 preExectue 方法集上将其可见性设置为可见

        pb.setVisibility(View.VISIBLE);

        在 doInBackground 方法中加载您的图像,最后在 onPostExecute 方法中使这个进度条不可见。

        pb.setVisibility(View.INVISIBLE);
        

        单击加载按钮时执行此异步任务类。

        这是理解 asyncTask 的简单教程

        http://androidresearch.wordpress.com/2012/03/17/understanding-asynctask-once-and-forever/

        或者可以使用线程来代替异步任务。

        【讨论】:

        • 在 postExecute 方法中设置适配器。如果没有异步任务或线程,progressBar 可见性和不可见性将无法工作。您不能使其在单个线程中可见或不可见。
        猜你喜欢
        • 2014-12-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多