Android如何设置片段ID?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (17)

我怎样才能设置Fragment' Id,我可以使用' getSupportFragmentManager().findFragmentById(R.id.--)吗

提问于
用户回答回答于

你可以使用下面的方法:

public abstract Fragment findFragmentById (int id)

Finds a fragment that was identified by the given id either
when inflated from XML or as the container ID when added in
a transaction.

还在这样:

getSupportFragmentManager()
    .beginTransaction()
    .add(R.id.fragment_holder, new AwesomeFragment())
    .commit();

接着使用下面的方法

AwesomeFragment awesome = (AwesomeFragment)
     getSupportFragmentManager()
          .findFragmentById(R.id.fragment_holder);
用户回答回答于

你不能以编程方式设置片段的ID。

但是,String tag你可以在FragmentTransaction中设置一个可用于唯一标识片段的内容。

如果你的问题是如何为你动态添加片段的唯一标识符,答案是使用FragmentTransaction的添加(INT containerViewId,片段片段,字符串标记) 的方法和FragmentManager的findFragmentByTag(字符串)方法。

在我的一个应用程序中,我被迫动态地生成字符串。但无论如何,它与实际的FragmentTransaction相比并不算昂贵。

扫码关注云+社区