如何解决获取当前片段对象?
现在在某个时间点,我需要确定当前存在哪个对象
调用findFragmentById()
并FragmentManager
确定哪个片段在您的R.id.frameTitle
容器中。
如果您在现代应用程序中使用“的androidx
版本”,请使用/而不是Fragment``getSupportFragmentManager()``FragmentActivity``AppCompatActivity``getFragmentManager()
解决方法
在我的main.xml
我有
<FrameLayout
android:id="@+id/frameTitle"
android:padding="5dp"
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:background="@drawable/title_bg">
<fragment
android:name="com.fragment.TitleFragment"
android:id="@+id/fragmentTag"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
</FrameLayout>
我正在设置这样的片段对象
FragmentManager fragmentManager = activity.getSupportFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
Fragment newFragment = new FragmentType1();
fragmentTransaction.replace(R.id.frameTitle,casinodetailFragment,"fragmentTag");
// fragmentTransaction.addToBackStack(null);
fragmentTransaction.commit();
它FragmentType2,FragmentType3,...
在不同的时间设置不同类型的 Fragment 对象 (
)。现在在某个时间点,我需要确定当前存在哪个对象。
简而言之,我需要做这样的事情 :
Fragment currentFragment = //what is the way to get current fragment object in FrameLayout R.id.frameTitle
我尝试了以下
TitleFragment titleFragmentById = (TitleFragment) fragmentManager.findFragmentById(R.id.frameTitle);
和
TitleFragment titleFragmentByTag = (TitleFragment) fragmentManager.findFragmentByTag("fragmentTag");
但是 这两个对象(titleFragmentById 和 titleFragmentByTag )都是null
我错过了什么吗?
我正在使用Compatibility Package,r3
和开发API level 7
.
findFragmentById()``findFragmentByTag()
如果我们使用fragmentTransaction.replace
or设置了片段,并且将工作fragmentTransaction.add
,但return
如果我们在 xml 中设置了对象(就像我在我的 中所做的那样
nullmain.xml
)。我想我在我的 XML 文件中遗漏了一些东西。
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。