如何通过代码设置Fragment标签?
我还没有find像Fragment
类中的setTag(String tagName)
方法。 设置我find的Fragment
标签的唯一方法是做一个FragmentTransaction
并传递一个标签名称作为参数。
这是通过代码显式设置Fragment
标签的唯一方法吗?
是。 所以唯一的办法是在交易时间,例如使用add
, replace
或作为布局的一部分。
我通过考察兼容性来源来确定这一点,因为我过去曾经在某个时候简单地寻找类似的东西。
您可以通过以下方式将标记设置为片段:
Fragment fragmentA = new FragmentA(); getFragmentManager().beginTransaction() .replace(R.id.MainFrameLayout,fragmentA,"YOUR_TARGET_FRAGMENT_TAG") .addToBackStack("YOUR_SOURCE_FRAGMENT_TAG").commit();
您可以在活动布局xml文件中提供一个标签。
使用唯一的string提供android:tag属性。“
就像您在布局xml中分配id一样。
android:tag="unique_tag"
链接到开发人员指南
你也可以像这样得到所有的片段:
对于v4 fragmets
List<Fragment> allFragments = getSupportFragmentManager().getFragments();
对于app.fragment
List<Fragment> allFragments = getFragmentManager().getFragments();
您可以将标记添加为Fragment
参数的属性。 如果片段被破坏,然后由操作系统重新创build,它将自动恢复。
例如 : –
final Bundle args = new Bundle(); args.putString("TAG", "my tag"); fragment.setArguments(args);