Фрагмент не скрывается - PullRequest
       10

Фрагмент не скрывается

0 голосов
/ 03 февраля 2019

Я добавил в свой макет фрагмент, содержащий веб-представление, и это работает.Теперь я пытаюсь вызвать действие внутри javascript кода, чтобы скрыть сам фрагмент.

Я реализовал класс с именем WebAppInterface, который можно вызывать из Javascript, и, если я нажимаю кнопку, вызывается hidePicker ().Сейчас я пытаюсь скрыть фрагмент, но ничего не происходит.Это моя функция:

import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentActivity;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentTransaction;

public class WebAppInterface extends FragmentActivity{

    public void hidePicker(){

        Log.d("CAPerm", "hide Picker");
        FragmentManager fm = getSupportFragmentManager();
        FragmentTransaction ft = fm.beginTransaction();
        ft.setCustomAnimations(android.R.animator.fade_in,
                android.R.animator.fade_out);
        Fragment picker = fm.findFragmentById(R.id.registrationpickerfragment);
        ft.hide(picker);
        ft.commit();
        Log.d("CAPerm", "hidden");
    }
}

фрагмент отображается в LinearLayout в Scrollview в ConstraintLayout.

Я получаю следующий консольный вывод:

W/System.err: java.lang.IllegalStateException: Activity has been destroyed
W/System.err:     at android.support.v4.app.FragmentManagerImpl.enqueueAction(FragmentManager.java:2087)
W/System.err:     at android.support.v4.app.BackStackRecord.commitInternal(BackStackRecord.java:678)
W/System.err:     at android.support.v4.app.BackStackRecord.commit(BackStackRecord.java:632)
    at com.mypackage.WebAppInterface.hidePicker(WebAppInterface.java:43)
    at android.os.MessageQueue.nativePollOnce(Native Method)
W/System.err:     at android.os.MessageQueue.next(MessageQueue.java:386)
    at android.os.Looper.loop(Looper.java:169)
    at android.os.HandlerThread.run(HandlerThread.java:65)
V/WindowManager: Exit animation finished in Window{fe0401a u0 com.mypackage.UserRegistration EXITING}: remove=true
E/WindowManager: win=Window{fe0401a u0 com.mypackage.UserRegistration EXITING} destroySurfaces: appStopped=false win.mWindowRemovalAllowed=true win.mRemoveOnExit=true
V/WindowManager: postWindowRemoveCleanupLocked: Window{fe0401a u0 com.mypackage.UserRegistration}
Removing Window{fe0401a u0 com.mypackage.UserRegistration} from AppWindowToken{b12e137 token=Token{266fe36 ActivityRecord{37b83d1 u0 com.mypackage.UserRegistration t6381}}}

более позднее сообщение журнала «скрытый» не выполняется, и кажется, что ошибка появляется в строке 43 (ft.commit ())

Есть идеи, почему фрагмент не удален, или какие-то обходные пути, как решить его лучше?

Заранее спасибо:)

С уважением, Кристиан

1 Ответ

0 голосов
/ 10 февраля 2019

Я наконец смог решить мою проблему:)

Я создал логическую переменную с прослушивателем событий в потоке пользовательского интерфейса следующим образом: Android: прослушивание изменений переменных - переполнение стека и вызвал setBoo из функции WebAppInterface:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...