【发布时间】:2019-12-07 04:52:57
【问题描述】:
我使用BottomNavigation 设置了嵌套视图,用户可以通过该视图从ListView 导航到详细信息“页面”之一。我已经尝试过手动路由以及 Vue Navigator
这是我的应用程序的布局。
<!--Main.vue-->
<Page>
<BottomNavigation>
<TabStrip class="bottom-navigation">
...
</TabStrip>
<TabContentItem>
<Frame>
<Dashboard />
</Frame>
</TabContentItem>
<TabContentItem>
<Frame>
<Finance />
</Frame>
</TabContentItem>
<TabContentItem>
<Frame>
<Profile />
</Frame>
</TabContentItem>
</BottomNavigation>
</Page>
<!--Finance.vue-->
<Page>
<Tabs>
<TabStrip class="tab-strip">
...
</TabStrip>
<TabContentItem>
<ListView
for="item in items"
@itemTap="$navigateTo(detailPage)"
class="list-group"
height="100%"
>
...
</ListView>
</TabContentItem>
<TabContentItem>
...
</TabContentItem>
</Tabs>
</Page>
<!--ItemDetails.vue-->
<Page>
<ActionBar class="action-bar">
<NavigationButton @tap="$navigateBack" android.systemIcon="ic_menu_back"/>
<Label class="action-bar-title" :text="item.name"></Label>
</ActionBar>
<GridLayout>
...
</GridLayout>
</Page>
这是按详细信息页面的后退按钮时出现的错误。
System.err: An uncaught Exception occurred on "main" thread.
System.err: The specified child already has a parent. You must call removeView() on the child's parent first.
System.err:
System.err: StackTrace:
System.err: java.lang.IllegalStateException: The specified child already has a parent. You must call removeView() on the child's parent first.
System.err: at android.view.ViewGroup.addViewInner(ViewGroup.java:5042)
System.err: at android.view.ViewGroup.addView(ViewGroup.java:4873)
System.err: at android.view.ViewGroup.addView(ViewGroup.java:4813)
System.err: at android.view.ViewGroup.addView(ViewGroup.java:4786)
System.err: at androidx.fragment.app.FragmentManagerImpl.moveToState(FragmentManagerImpl.java:887)
System.err: at androidx.fragment.app.FragmentManagerImpl.moveFragmentToExpectedState(FragmentManagerImpl.java:1238)
System.err: at androidx.fragment.app.FragmentManagerImpl.moveToState(FragmentManagerImpl.java:1303)
System.err: at androidx.fragment.app.FragmentManagerImpl.dispatchStateChange(FragmentManagerImpl.java:2659)
System.err: at androidx.fragment.app.FragmentManagerImpl.dispatchActivityCreated(FragmentManagerImpl.java:2613)
System.err: at androidx.fragment.app.Fragment.performActivityCreated(Fragment.java:2624)
System.err: at androidx.fragment.app.FragmentManagerImpl.moveToState(FragmentManagerImpl.java:904)
System.err: at androidx.fragment.app.FragmentManagerImpl.moveFragmentToExpectedState(FragmentManagerImpl.java:1238)
System.err: at androidx.fragment.app.FragmentManagerImpl.moveToState(FragmentManagerImpl.java:1303)
System.err: at androidx.fragment.app.BackStackRecord.executeOps(BackStackRecord.java:439)
System.err: at androidx.fragment.app.FragmentManagerImpl.executeOps(FragmentManagerImpl.java:2079)
System.err: at androidx.fragment.app.FragmentManagerImpl.executeOpsTogether(FragmentManagerImpl.java:1869)
System.err: at androidx.fragment.app.FragmentManagerImpl.removeRedundantOperationsAndExecute(FragmentManagerImpl.java:1824)
System.err: at androidx.fragment.app.FragmentManagerImpl.execPendingActions(FragmentManagerImpl.java:1727)
System.err: at androidx.fragment.app.FragmentManagerImpl$2.run(FragmentManagerImpl.java:150)
System.err: at android.os.Handler.handleCallback(Handler.java:874)
System.err: at android.os.Handler.dispatchMessage(Handler.java:100)
System.err: at android.os.Looper.loop(Looper.java:198)
System.err: at android.app.ActivityThread.main(ActivityThread.java:6729)
System.err: at java.lang.reflect.Method.invoke(Native Method)
System.err: at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
System.err: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
应用程序崩溃,我无法找出可能导致错误的原因。请帮忙。
【问题讨论】:
-
请分享一个可以重现问题的最小 Playground 示例。
标签: nativescript nativescript-vue