在片段内执行片段事务是个好主意吗?
Is it a good idea to perform FragmentTransactions inside a fragment?
如标题所示,在片段中执行 FragmentTransaction
是个好主意吗?
我的看法是,FragmentTransaction
需要 containerView id 和 Fragment 在调用 FragmentTransaction.replace()
时膨胀。获取 ID 的 containerView 通常位于 activity 布局中。因此,在 activity 中而不是在 Fragment 中执行 FragmentTransaction
似乎是个好主意。
但是我在使用 SharedElementTransition
作为片段时感到困惑。现在它需要一个 Views
的列表,这将是共享元素。这些视图位于片段中。现在在 Fragment 本身内部执行 FragmentTransaction 似乎合乎逻辑。
谁能指导我如何补偿这两种情况?
在 fragment
中做 FragmentTransaction
没有错,只要它不是多余的,例如:
"Container" 片段
"Child Fragment" 包含视图寻呼机
查看寻呼机有碎片
在这里,您可以删除子片段并将视图寻呼机放在容器片段上。
对于 fragment
中的 FragmentTransaction
,您实际上可以通过调用 getActivity().getSupportFragmentManager()
来交换 fragment
本身。此处,交易发生在 Activity
而不是 fragment
。但是,如果您打算使用 FragmentTransaction
交换父级 fragment
的子级,则可以在 fragment
.
上使用 getChildFragmentManager()
另外,child fragments实际上被android支持。
如标题所示,在片段中执行 FragmentTransaction
是个好主意吗?
我的看法是,FragmentTransaction
需要 containerView id 和 Fragment 在调用 FragmentTransaction.replace()
时膨胀。获取 ID 的 containerView 通常位于 activity 布局中。因此,在 activity 中而不是在 Fragment 中执行 FragmentTransaction
似乎是个好主意。
但是我在使用 SharedElementTransition
作为片段时感到困惑。现在它需要一个 Views
的列表,这将是共享元素。这些视图位于片段中。现在在 Fragment 本身内部执行 FragmentTransaction 似乎合乎逻辑。
谁能指导我如何补偿这两种情况?
在 fragment
中做 FragmentTransaction
没有错,只要它不是多余的,例如:
"Container" 片段
"Child Fragment" 包含视图寻呼机
查看寻呼机有碎片
在这里,您可以删除子片段并将视图寻呼机放在容器片段上。
对于 fragment
中的 FragmentTransaction
,您实际上可以通过调用 getActivity().getSupportFragmentManager()
来交换 fragment
本身。此处,交易发生在 Activity
而不是 fragment
。但是,如果您打算使用 FragmentTransaction
交换父级 fragment
的子级,则可以在 fragment
.
getChildFragmentManager()
另外,child fragments实际上被android支持。