[英]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.