Android target SDK moved from 26 to 28, error: The specified child already has a parent. You must call...
On our project, we have some downtime and decided to update the project target SDK version from API 26 to API 28. The project builds and works somewhat fine. The problem that we have is that we get this error when we switch back to a fragment that is in the back stack:
The specified child already has a parent. You must call
removeView()
on the child's parent first.
We have a class called BaseNavigationController
that is a fragment and manages our nested fragments. We use the getChildFragmentManager
and we set the setCustomAnimations
with enter, exit, popEnter and popExit values.
The error "disappears" when we set the duration of all the animation to the exact same length. But that it persist if we remove the setCustomAnimations
from the transaction.
getFragmentManager().beginTransaction()
.setCustomAnimations(enter, exit, popEnter, popExit)
.addToBackStack(null)
.replace(R.id.main_container, controller, tag)
.commit();
I haven't found any proper solution to this problem. One hack is to remove the view in the onDestroyView
method in the base fragment. But then we get an empty screen on the enter animation from the back stack. The other one is that we use the getFragmentManager
method but then the fragment nesting doesn`t work correctly.
android android-fragments fragmentmanager
add a comment |
On our project, we have some downtime and decided to update the project target SDK version from API 26 to API 28. The project builds and works somewhat fine. The problem that we have is that we get this error when we switch back to a fragment that is in the back stack:
The specified child already has a parent. You must call
removeView()
on the child's parent first.
We have a class called BaseNavigationController
that is a fragment and manages our nested fragments. We use the getChildFragmentManager
and we set the setCustomAnimations
with enter, exit, popEnter and popExit values.
The error "disappears" when we set the duration of all the animation to the exact same length. But that it persist if we remove the setCustomAnimations
from the transaction.
getFragmentManager().beginTransaction()
.setCustomAnimations(enter, exit, popEnter, popExit)
.addToBackStack(null)
.replace(R.id.main_container, controller, tag)
.commit();
I haven't found any proper solution to this problem. One hack is to remove the view in the onDestroyView
method in the base fragment. But then we get an empty screen on the enter animation from the back stack. The other one is that we use the getFragmentManager
method but then the fragment nesting doesn`t work correctly.
android android-fragments fragmentmanager
add a comment |
On our project, we have some downtime and decided to update the project target SDK version from API 26 to API 28. The project builds and works somewhat fine. The problem that we have is that we get this error when we switch back to a fragment that is in the back stack:
The specified child already has a parent. You must call
removeView()
on the child's parent first.
We have a class called BaseNavigationController
that is a fragment and manages our nested fragments. We use the getChildFragmentManager
and we set the setCustomAnimations
with enter, exit, popEnter and popExit values.
The error "disappears" when we set the duration of all the animation to the exact same length. But that it persist if we remove the setCustomAnimations
from the transaction.
getFragmentManager().beginTransaction()
.setCustomAnimations(enter, exit, popEnter, popExit)
.addToBackStack(null)
.replace(R.id.main_container, controller, tag)
.commit();
I haven't found any proper solution to this problem. One hack is to remove the view in the onDestroyView
method in the base fragment. But then we get an empty screen on the enter animation from the back stack. The other one is that we use the getFragmentManager
method but then the fragment nesting doesn`t work correctly.
android android-fragments fragmentmanager
On our project, we have some downtime and decided to update the project target SDK version from API 26 to API 28. The project builds and works somewhat fine. The problem that we have is that we get this error when we switch back to a fragment that is in the back stack:
The specified child already has a parent. You must call
removeView()
on the child's parent first.
We have a class called BaseNavigationController
that is a fragment and manages our nested fragments. We use the getChildFragmentManager
and we set the setCustomAnimations
with enter, exit, popEnter and popExit values.
The error "disappears" when we set the duration of all the animation to the exact same length. But that it persist if we remove the setCustomAnimations
from the transaction.
getFragmentManager().beginTransaction()
.setCustomAnimations(enter, exit, popEnter, popExit)
.addToBackStack(null)
.replace(R.id.main_container, controller, tag)
.commit();
I haven't found any proper solution to this problem. One hack is to remove the view in the onDestroyView
method in the base fragment. But then we get an empty screen on the enter animation from the back stack. The other one is that we use the getFragmentManager
method but then the fragment nesting doesn`t work correctly.
android android-fragments fragmentmanager
android android-fragments fragmentmanager
edited Jan 2 at 5:17
shizhen
3,68641234
3,68641234
asked Jan 2 at 4:05
AaBoyAaBoy
285
285
add a comment |
add a comment |
0
active
oldest
votes
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f54001068%2fandroid-target-sdk-moved-from-26-to-28-error-the-specified-child-already-has-a%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
0
active
oldest
votes
0
active
oldest
votes
active
oldest
votes
active
oldest
votes
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f54001068%2fandroid-target-sdk-moved-from-26-to-28-error-the-specified-child-already-has-a%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown