如何在另一个片段中访问和使用一个片段的按钮?
How can I access and use button of one fragment inside another fragment?
我有一个片段,HomeFragment()
。在这个片段中,我有 TabLayout
和 ViewPager2
。在 viewPager2
中还有另一个片段叫做 ordersFragment()
。是否可以单击放置在 HomeFragment()
中的任何按钮并在 ordersFragment()` 中显示一些文本?
最佳做法是使用在一个片段中实现的回调并在另一个片段中调用它。
如果您使用的是 kotlin,请检查此..
link
(我不想在这里复制粘贴相同的代码)
我真的建议使用现代方法,即 ViewModels
component。视图模型基本上是一个保存数据和状态的 class,组件使 activity 中的每个片段能够获取相同的视图模型实例,因此它们都在查看相同的东西
这样,一个片段可以为某些数据设置一个值,而另一个片段 observe
设置它并在有更新时得到通知。两个片段都不需要了解彼此,它们只是与视图模型对话并观察它们需要担心的事情。有这样的例子in the docs
你 可以 自己协调所有这些东西(例如通过父 Activity
并与另一个片段对话)但是你添加了很多东西ViewModel
为您处理的工作和样板文件。它还可以帮助您将 UI(显示内容、处理用户交互)与业务逻辑(使用该数据执行某些操作、更新应用程序状态)分开。了解它绝对是件好事,并使围绕您的应用程序的交流变得更加容易
我有一个片段,HomeFragment()
。在这个片段中,我有 TabLayout
和 ViewPager2
。在 viewPager2
中还有另一个片段叫做 ordersFragment()
。是否可以单击放置在 HomeFragment()
中的任何按钮并在 ordersFragment()` 中显示一些文本?
最佳做法是使用在一个片段中实现的回调并在另一个片段中调用它。
如果您使用的是 kotlin,请检查此..
link (我不想在这里复制粘贴相同的代码)
我真的建议使用现代方法,即 ViewModels
component。视图模型基本上是一个保存数据和状态的 class,组件使 activity 中的每个片段能够获取相同的视图模型实例,因此它们都在查看相同的东西
这样,一个片段可以为某些数据设置一个值,而另一个片段 observe
设置它并在有更新时得到通知。两个片段都不需要了解彼此,它们只是与视图模型对话并观察它们需要担心的事情。有这样的例子in the docs
你 可以 自己协调所有这些东西(例如通过父 Activity
并与另一个片段对话)但是你添加了很多东西ViewModel
为您处理的工作和样板文件。它还可以帮助您将 UI(显示内容、处理用户交互)与业务逻辑(使用该数据执行某些操作、更新应用程序状态)分开。了解它绝对是件好事,并使围绕您的应用程序的交流变得更加容易