Clean up keyboard fragment when view is detached from window.

main
Alex Hart 2022-11-28 13:01:58 -04:00
rodzic 683247bf98
commit 42d2d415d6
1 zmienionych plików z 22 dodań i 1 usunięć

Wyświetl plik

@ -50,6 +50,26 @@ public class MediaKeyboard extends FrameLayout implements InputView {
}
}
@Override
protected void onAttachedToWindow() {
super.onAttachedToWindow();
if (isInitialised && fragmentManager != null && keyboardPagerFragment != null) {
fragmentManager.beginTransaction()
.replace(R.id.media_keyboard_fragment_container, keyboardPagerFragment, TAG)
.commitNowAllowingStateLoss();
}
}
@Override
protected void onDetachedFromWindow() {
super.onDetachedFromWindow();
if (fragmentManager != null && keyboardPagerFragment != null) {
fragmentManager.beginTransaction()
.remove(keyboardPagerFragment)
.commitNowAllowingStateLoss();
}
}
public void setFragmentManager(@NonNull FragmentManager fragmentManager) {
this.fragmentManager = fragmentManager;
}
@ -152,6 +172,7 @@ public class MediaKeyboard extends FrameLayout implements InputView {
private void initView() {
if (!isInitialised) {
Log.d(TAG, "Initialising...");
LayoutInflater.from(getContext()).inflate(R.layout.media_keyboard, this, true);
@ -166,7 +187,7 @@ public class MediaKeyboard extends FrameLayout implements InputView {
}
fragmentManager.beginTransaction()
.replace(R.id.media_keyboard_fragment_container, keyboardPagerFragment)
.replace(R.id.media_keyboard_fragment_container, keyboardPagerFragment, TAG)
.commitNowAllowingStateLoss();
keyboardState = State.NORMAL;