我有一个 NavigationDrawer,它是一个左侧菜单,当我触摸此按钮中的一个按钮时,我会加载一个新片段,如下所示:
fragmentManager.beginTransaction()
.replace(R.id.frame_container, fragment,""+tagFragment).commit();
fragmentManager.executePendingTransactions();
我有一个使用相机实例的片段,该片段的加载速度比另一个片段慢,如果我像其他片段一样加载相机片段,应用程序会冻结很慢的时间,所以我想在我的主要活动上添加一个进度条和加载相机片段时,我使用回调删除progressView。
为此,我会显示进度条并在延迟后加载片段:
RelativeLayout layoutLoadingIndicator = (RelativeLayout)findViewById(R.id.rl_loading_indicator);
layoutLoadingIndicator.setVisibility(View.VISIBLE);
Handler mainHandler = new Handler(this.getMainLooper());
Runnable task = new Runnable() {
@Override
public void run() {
fragmentManager.beginTransaction()
.replace(R.id.frame_container, fragment,""+tagFragment).commit();
fragmentManager.executePendingTransactions(); }
};
worker.schedule(task, 2, TimeUnit.SECONDS);
相机片段在 2 秒后加载,工作正常。问题是,当我想加载一个新片段时,它仍然是屏幕上的相机片段,片段被替换为相机片段下方。如果我删除 Runnable 任务并且我像其他片段一样加载相机片段,那么我可以切换到其他片段。
我认为问题来自 Runnable 任务和片段管理器。
有任何想法吗 ?谢谢。