如何使用视图绑定从片段更改父活动中的视图[重复]

Posted

技术标签:

【中文标题】如何使用视图绑定从片段更改父活动中的视图[重复]【英文标题】:How to change view in parent activity from Fragment with view binding [duplicate] 【发布时间】:2021-08-14 18:27:25 【问题描述】:

视图绑定是访问视图的推荐方式,此问题已过时:How to access parent Activity View in Fragment。

那么,使用视图绑定从片段编辑活动视图的正确方法是什么?

【问题讨论】:

这取决于您需要它来做什么(例如引用、实例、创建实例等)。在任何大型框架中,您可以通过多种方式获取大部分资源,但通常每个方法返回它的不同版本,通常针对某个(一组)用例量身定制......换句话说,你需要它做什么? :) ViewBinding 与两个实体(活动、片段等)之间的数据共享无关。如果您确实需要访问共享状态,Google 推荐的方法是使用共享 ViewModel。 【参考方案1】:

公开活动的绑定变量并像这样访问它

(requireActivity() as MainActivity).binding.viewToBeAccessed

【讨论】:

【参考方案2】:

您可以使用 getActivity() 从片段中获取对父活动的引用。 您还可以调用 requireActivity() ,然后调用 getActivity() 并在其为空时抛出异常,例如该片段未附加到任何活动。

【讨论】:

以上是关于如何使用视图绑定从片段更改父活动中的视图[重复]的主要内容,如果未能解决你的问题,请参考以下文章

使用绑定从片段访问父活动的 UI 元素

如何将可扩展列表视图的选定子视图数据从片段发送到父活动?

如何访问活动内部/从活动中的片段视图组件

如何使用列表视图在选项卡式活动的片段中呈现 SQLite 表数据 [重复]

使用视图绑定访问另一个活动的 UI 元素

如何使用导航从其他片段隐藏主机活动中的视图