插入一个查看传呼机Android的圆形进度条 [英] Insert a circular progress bar in a View Pager android

查看:129
本文介绍了插入一个查看传呼机Android的圆形进度条的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个由25个片段视图寻呼机(每一个全文从字符串来的)和一个网格是要显示的第一个片段。问题是,当我加载从5到10秒至开始响应应用程序,那么它的作品真的流利。因为我需要在同一时间加载的所有片段我不能减少加载时间。因此,我想一个圆形进度条(纺纱一个)3-4秒。

这是我的主要活动:

 公共无效的onCreate(捆绑savedInstanceState){
        super.onCreate(savedInstanceState);
        Utils.onActivityCreateSetTheme(本);
        的setContentView(R.layout.activity_main);
        的setTitle(R.string.title_activity_afabeto);fragments.add(Fragment.instantiate(在此,GRID.class.getName()));
fragmentTitles.add(的getString(R.string.title_activity_afabeto));
fragments.add(Fragment.instantiate(在此,A.class.getName()));
fragmentTitles.add(A.class.getSimpleName());
fragments.add(Fragment.instantiate(在此,B.class.getName()));
fragmentTitles.add(B.class.getSimpleName());
fragments.add(Fragment.instantiate(在此,C.class.getName()));
fragmentTitles.add(C.class.getSimpleName());



fragments.add(Fragment.instantiate(在此,Z.class.getName()));
fragmentTitles.add(Z.class.getSimpleName());
//
mViewPager =(ViewPager)findViewById(R.id.pager);
查看pagerStrip = findViewById(R.id.pagerTabStrip);如果(pagerStrip的instanceof PagerTabStrip){
    PagerTabStrip pagerTabStrip =(PagerTabStrip)pagerStrip;
    pagerTabStrip.setDrawFullUnderline(真);
    pagerTabStrip.setTabIndicatorColorResource(android.R.color.holo_red_dark);
    // pagerTabStrip.setTextColor(color.white);
}否则如果(pagerStrip的instanceof PagerTitleStrip){
    PagerTitleStrip pagerTitleStrip =(PagerTitleStrip)pagerStrip;
    pagerTitleStrip.setTextColor(getResources()的getColor(android.R.color.white));
}this.mPagerAdapter =新PagerAdapter(super.getSupportFragmentManager(),片段,fragmentTitles);
mViewPager.setAdapter(this.mPagerAdapter);
mViewPager.setCurrentItem(0);
mViewPager.setOffscreenPageLimit(fragments.size());    }
公共ViewPager getViewPager(){
如果(空== mViewPager){
    mViewPager =(ViewPager)findViewById(R.id.pager);
}
返回mViewPager;
}


解决方案

在这里阅读注释后你可能需要的东西 - 一个AsyncTask的和的和不确定的进度条。您可以重新使用当前的code获得的数据。只要确保你没有从后台任务做任何屏幕I / O。

 公共类MyBackgroundTask扩展的AsyncTask<弦乐,太虚,布尔> {    @覆盖
    在preExecute保护无效(){
        mProgressDialog = ProgressDialog.show(MainActivity.this的getString(R.string.wait_for_communication),TRUE);
        mProgressDialog.setCancelable(假);
    }    @覆盖
    保护布尔doInBackground(字符串...回答){
        //做你的数据的东西在这里        //这个返回类型是在声明中第3个数据类型
        返回true;
    }    @覆盖
    保护无效onPostExecute(最终布尔成功){        如果(!成功){
            //发生了某种错误的
            AlertDialog.Builder errorDialog =新AlertDialog.Builder(MainActivity.this);
            errorDialog.setTitle(错误通知);
            errorDialog.setMessage(错误消息);
            errorDialog.show();
        }        mProgressDialog.dismiss();
    }

I have a View Pager which consists in 25 fragments (each one full of text coming from strings) and a grid which is the first fragment to be shown. The problem is that when I load the app it takes from 5 to 10 seconds to start responding, then it works really fluently. I cannot reduce loading times as I need all the fragments loaded at the same time. Therefore I would like a circular Progress Bar (the spinning one) for 3-4 seconds.

This is my main activity:

    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        Utils.onActivityCreateSetTheme(this);
        setContentView(R.layout.activity_main);
        setTitle(R.string.title_activity_afabeto);  

fragments.add(Fragment.instantiate(this, GRID.class.getName()));
fragmentTitles.add(getString(R.string.title_activity_afabeto));
fragments.add(Fragment.instantiate(this, A.class.getName()));
fragmentTitles.add(A.class.getSimpleName());
fragments.add(Fragment.instantiate(this, B.class.getName()));
fragmentTitles.add(B.class.getSimpleName());
fragments.add(Fragment.instantiate(this, C.class.getName()));
fragmentTitles.add(C.class.getSimpleName());
.
.
.
fragments.add(Fragment.instantiate(this, Z.class.getName()));
fragmentTitles.add(Z.class.getSimpleName());
//
mViewPager = (ViewPager) findViewById(R.id.pager);
View pagerStrip = findViewById(R.id.pagerTabStrip);

if (pagerStrip instanceof PagerTabStrip) {
    PagerTabStrip pagerTabStrip = (PagerTabStrip) pagerStrip;
    pagerTabStrip.setDrawFullUnderline(true);
    pagerTabStrip.setTabIndicatorColorResource(android.R.color.holo_red_dark);
    // pagerTabStrip.setTextColor(color.white);
} else if (pagerStrip instanceof PagerTitleStrip) {
    PagerTitleStrip pagerTitleStrip = (PagerTitleStrip) pagerStrip;
    pagerTitleStrip.setTextColor(getResources().getColor(android.R.color.white));
}

this.mPagerAdapter = new PagerAdapter(super.getSupportFragmentManager(), fragments, fragmentTitles);
mViewPager.setAdapter(this.mPagerAdapter);
mViewPager.setCurrentItem(0);
mViewPager.setOffscreenPageLimit(fragments.size());

    }


public ViewPager getViewPager() {
if (null == mViewPager) {
    mViewPager = (ViewPager) findViewById(R.id.pager);
}
return mViewPager;
}

解决方案

After reading the comments here is what you might need - an AsyncTask and and indeterminate progress bar. You can re-use your current code for obtaining the data. Just make sure you don't do any screen I/O from the background task.

public class MyBackgroundTask extends AsyncTask<String, Void, Boolean> {

    @Override
    protected void onPreExecute() {
        mProgressDialog = ProgressDialog.show(MainActivity.this, "", getString(R.string.wait_for_communication), true);
        mProgressDialog.setCancelable(false);
    }

    @Override
    protected Boolean doInBackground(String... answer) {
        // do your data stuff here

        // this return type is the 3rd data type in the declaration
        return true; 
    }

    @Override
    protected void onPostExecute(final Boolean success) {

        if ( !success ) {
            // Some kind of error occurred
            AlertDialog.Builder errorDialog = new AlertDialog.Builder(MainActivity.this);
            errorDialog.setTitle("Error Notice");
            errorDialog.setMessage("Error Message");
            errorDialog.show();
        }

        mProgressDialog.dismiss();
    }

这篇关于插入一个查看传呼机Android的圆形进度条的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆