5

我的应用程序中有官方导航抽屉。单击抽屉中的项目会在屏幕的内容部分打开新的片段。每个 Fragment 都包含FrameLayout相同的 id,用于显示 Crouton。

基本用途是当用户单击操作栏中的刷新按钮时显示无限的面包块(通知正在进行的刷新)。刷新完成后,会显示另一个油炸面包丁(替换旧的)。在某些情况下,甚至在进入屏幕后立即显示面包块(并在触发刷新时替换)。

我遇到的问题有点难以描述。一些面包块只是不时出现。当我在屏幕之间切换时通常会发生这种情况(当我在该屏幕上第一次按下刷新按钮时未显示初始的面包块或未显示面包块 - 但是,它会在刷新完成显示,然后当我按下刷新按钮时) .

所以这是非常不可预测的。甚至在某些情况下,当我切换到另一个屏幕并返回之前,屏幕根本不显示面包块。

为了显示面包块,我在每个 Framgnet 的布局中使用它:

<FrameLayout
    android:id="@+id/crouton_view"
    android:layout_width="match_parent"
    android:layout_height="@dimen/crouton_height"
    android:layout_alignParentTop="true" />

在代码中,我有带有以下方法的 CroutonBuilder 类:

public static Crouton getNewLastUpdateCrouton(Activity activity, boolean infinite, String plateNumber) {
    String lastUpdateString = ...;
    Crouton newCrouton = Crouton.makeText(activity, lastUpdateString, CroutonBuilder.getLastUpdate(activity),
                                    R.id.crouton_view);
    if (infinite) {
        newCrouton.setConfiguration(new Configuration.Builder().setDuration(
                                        Configuration.DURATION_INFINITE).build());
    }
    return newCrouton;
}

然后只需调用.show()返回的面包块。当我调试并逐步执行时,show()会调用该方法,但有时什么都不显示。

你有什么想法我做错了什么吗?

4

1 回答 1

9

我发现当我离开 Fragment 时,Crouton 停止出现,而当前显示的是 Crouton。打电话帮忙Crouton.cancelAllCroutons()onPause()

于 2014-07-03T15:59:02.010 回答