微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Android进度微调器,能够显示但不能以编程方式隐藏

我正在尝试在我的testLayout.xml文件中指定一个进度微调器,然后以编程方式显示和隐藏它,就像我在下面的活动代码中所做的那样.然而,发生的事情是进度轮会显示,但即​​使我有setProgressBarVisibility(false)它也永远不会消失;在末尾.有任何想法吗?谢谢你的意见

布局/ testLayout.xml

    

    <Button android:layout_width="fill_parent"
        android:layout_height="wrap_content" android:id="@+id/ButtonNew"
        android:text="New" android:layout_alignParentBottom="true" />

    <ListView android:layout_width="fill_parent"
        android:layout_height="fill_parent" android:id="@+id/list"
        android:layout_alignParentTop="true" android:layout_above="@id/ButtonNew" />

    <ProgressBar style="?android:attr/progressBarStyleLarge" android:layout_width="wrap_content" android:id="@+id/progressBar1" android:layout_height="wrap_content" android:layout_alignParentTop="true" android:layout_centerHorizontal="true"></ProgressBar>


</RelativeLayout>

TestActivity.java

    public void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
                getwindow().requestFeature(Window.FEATURE_PROGRESS);
                setContentView(R.layout.testLayout);            
                setProgressBarVisibility(true);
    try {
            Thread.sleep(5000);
        } catch (InterruptedException e) {
            // Todo Auto-generated catch block
            e.printstacktrace();
        }
setProgressBarVisibility(false);
    }

解决方法:

好吧,你的代码中存在一个问题,因为你的Thread.sleep调用会导致onCreate在继续之前等待5秒.您永远不应该在主UI线程上执行Thread.sleep调用,因为它会导致应用程序在这段时间内没有响应.现在关于ProgressBar,您似乎没有正确地将setProgressBarVisibility与xml文件一起使用.这些函数应该用于标题栏中包含的ProgressBar.您应该使用findViewById(R.id.progressBar1).setVisibility(View.Gone)隐藏或View.Visible来显示.但如果这两个调用都是在onCreate内完成的,那么你只会看到最后一个调用调用.这是因为在从onResume和onCreate返回活动之前,实际上没有向用户显示ui.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐