繁体   English   中英

Android中的ProgressBar-如何使用片段和线程使其更流畅?

[英]ProgressBar in Android - how to make it smoother using fragments and threads?

我目前正在编写基于与服务器通信的应用程序。 现在,我正在尝试在用户尝试登录时为加载圆圈设置动画。我的问题是-它的动画效果不是很流畅。 我相信这是因为它在主线程上运行,与其他“繁重的操作”相同。

这是一些代码:

public void headClick(View v){
    showLoadingFragment();
    powerLogin();
}

public void showLoadingFragment(){
    FragmentManager fragmentManager = getSupportFragmentManager();
    FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
    LoadingFragment loadingFragment = new LoadingFragment();
    fragmentTransaction.replace(R.id.logsign_content, loadingFragment);
    fragmentTransaction.addToBackStack(null);
    fragmentTransaction.commit();
}

我知道,这有点...不寻常。 通常,我在此屏幕上替换片段,并且当前唯一可自由显示此进度栏的位置由片段填充。 我的想法是隐藏所有用户选项(按钮,文本字段等),并在其中放入带圆圈的清晰片段。

这是Fragment的实现(目前它已成为标准配置):

public class LoadingFragment extends Fragment {

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    View loadingFragment = inflater.inflate(R.layout.fragment_main_loading, container, false);

    return loadingFragment;
}


}

和用户界面:

<?xml version="1.0" encoding="utf-8"?>

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent">

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

</RelativeLayout>

我搜索了类似的问题,但是解决方案并不真正适合我的方法。 例如,我正在使用改造库进行通讯,而不是经典的AsynchTask(因为我在做事时无法显示ProgressBar)。 而且由于使用片段,我无法真正将其始终隐藏起来……因为它不存在。

有任何想法吗?

您可以使用帧动画制作自己的进度条,或者如果您想要使用线程的复杂进度条,则可以使用surfaceView或glSurfaceView

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM