sách gpt4 ai đã đi

android - 导航组件 - ViewPager fragment 中的 findNavController 不起作用

In lại 作者:行者123 更新时间:2023-12-04 01:35:09 47 4
mua khóa gpt4 Nike

我有一个带有 3 个菜单选项(主页、服务和更多)的底部导航。
主页选项卡 fragment 包含 TabLayout 和 ViewPager。

ViewPager 有 2 个 fragment - CurrentDetailFargment 和 PreviousDetailFragment。

ViewPager Works,之后当我使用 findNavController() 应用单击 CurrentDetailFargment 的按钮时,我得到了异常。

Thẩm quyền giải quyết

导航支付屏幕

findNavController().
navigate(R.id.action_currentBillFragment_to_paymentOptionsFragment)

异常(exception)
java.lang.IllegalArgumentException: navigation destination XXXXXXX:id/action_currentBillFragment_to_paymentOptionsFragment is unknown to this NavController
at androidx.navigation.NavController.navigate(NavController.java:789)
at androidx.navigation.NavController.navigate(NavController.java:730)
at androidx.navigation.NavController.navigate(NavController.java:716)
at androidx.navigation.NavController.navigate(NavController.java:704)
at com.bses_yamuna.user.home.currentbill.view.CurrentBillFragment.navigateToPayNow

根据异常(exception) - 我没有在我的图表中提到“action_currentBillFragment_to_paymentOptionsFragment”ID。但我已经宣布它是图表。此图与底部导航一起使用。

请让我知道我解决了这个问题。

Activity 布局科-
    <>
android:id="@+id/navigationHost"
android:name="androidx.navigation.fragment.NavHostFragment"
android:layout_width="phù hợp với cha mẹ"
android:layout_height="0dp"
app:defaultNavHost="true"
app:layout_constraintBottom_toTopOf="@+id/bottomNavigation"
app:layout_constraintTop_toBottomOf="@+id/constraint_top"
app:navGraph="@navigation/menu_navigation" />

<>
android:id="@+id/bottomNavigation"
style="@style/Widget.BottomNavigationView"
android:layout_width="phù hợp với cha mẹ"
android:layout_height="wrap_content"
android:background="?android:attr/windowBackground"
app:itemIconTint="@drawable/bottom_navigation_item_colors"
app:itemTextColor="@drawable/bottom_navigation_item_colors"
app:labelVisibilityMode="labeled"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:menu="@menu/bottom_nav_menu_modify" />

适配器
 class ViewPagerAdapter (fragmentManager:FragmentManager, private val titleList: ArrayList): FragmentStatePagerAdapter(fragmentManager,BEHAVIOR_RESUME_ONLY_CURRENT_FRAGMENT ) {

override fun getItem(position: Int): Fragment {
return if(position==0)
CurrentBillFragment()
khác
PreviousBillFragment()

}

override fun getCount(): Int {
return titleList.size
}

override fun getPageTitle(position: Int): CharSequence? {
return titleList[position]
}
override fun getItemPosition(value: Any): Int {
return PagerAdapter.POSITION_NONE
}

}

在 ViewPager- 上设置适配器
private fun setupViewPager() {
val titles = ArrayList()
titles.add(getString(R.string.current_bill_detail))
titles.add(getString(R.string.previous_bill_detail))
val adapter = ViewPagerAdapter(childFragmentManager, titles)
mBinding.tabLayout.setupWithViewPager( mBinding.pager)
mBinding.pager.adapter = adapter

}

menu_navigation.xml-
   <>
android:id="@+id/currentBillFragment"
android:name="XXXXX.view.CurrentDetailFargment "
tools:layout="@layout/fragment_current_bill">


android:id=
"@+id/action_currentBillFragment_to_currentBillSummaryFragment"
app:destination="@+id/currentBillSummaryFragment" />


<>
android:id="@+id/paymentOptionsFragment"
android:name="XXXXX.view.PaymentOptionsFragment"
tools:layout="@layout/fragment_payment_option"/>

1 Câu trả lời

Action 应该在包含 ViewPager 和 TabLayout 的 fragment 中定义。

我在 ViewPager 和 TabLayout 的宿主 fragment 中移动了操作“action_currentBillFragment_to_currentBillSummaryFragment”。

关于android - 导航组件 - ViewPager fragment 中的 findNavController 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59825694/

47 4 0
行者123
Hồ sơ cá nhân

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá Didi Taxi miễn phí
Mã giảm giá Didi Taxi
Giấy chứng nhận ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com