0

アクティビティの onCreateOptionsMenu メソッドにコーチマークを実装しました。

/* Coachmark - preview */
        if (preview.isEnabled(uuserID)) {
            new runOnMainThread(() -> {
                    final View anchorView = findViewById(R.id.action_preview);
                    if (anchorView != null) {
                        new CoachMark.Builder(PreviewActivity.this, anchorView, CoachMarkType.CoachMarkDirection.TOP)
                                .setText(R.string.hello_tooltip)
                                .setTextStyleId(R.style.AppStatusBarTextStyle)
                                .setRadius(MiscUtils.dpToPixel(PreviewActivity.this, 4))
                                .dismissOnTouch(true)
                                .dismissOnTouchOutside(true)
                                .build()
                                .show();
                    }
            });
        }

public static Task<Void> runOnMainThread(@NonNull Runnable runnable) {
    return runOnExecutor(runnable, Task.UI_THREAD_EXECUTOR, null);
}

アクティビティがフォーカスされると、ファイルがロードされ、アクティビティのオプション メニューも作成されます。createOptionsMenu からコーチマークを呼び出していましたが、runOnMainThread() を使用してスレッドを実行するとコーチマークが表示されず、Handler().post() を使用すると表示されます。ハンドラーを使用する理由とタイミング、および runOnMainThread() を使用するタイミング。

4

0 に答える 0