我有MainActivity,在这个活动中我有四个fragments
。片段名称是A,B,C,D.
如何在android中获取当前可见的片段?
Fragment currentVisibleFragment = getSupportFragmentManager().findFragmentByTag(null);
使用这个上面一行我试图获取当前可见fragment
,但我不能获取当前可见的片段。
我有MainActivity,在这个活动中我有四个fragments
。片段名称是A,B,C,D.
如何在android中获取当前可见的片段?
Fragment currentVisibleFragment = getSupportFragmentManager().findFragmentByTag(null);
使用这个上面一行我试图获取当前可见fragment
,但我不能获取当前可见的片段。
private Fragment getVisibleFragment() {
FragmentManager fragmentManager = MainActivity.this.getSupportFragmentManager();
List<Fragment> fragments = fragmentManager.getFragments();
for (Fragment fragment : fragments) {
if (fragment != null && fragment.isVisible())
return fragment;
}
return null;
}
使用
if (getVisibleFragment() instanceof HomeScreen) {
Do your stuff..
}
是MainActivity
是持有人,并HomeScreen
是你的片段之一。
你需要把这个方法放在每个片段中,所以当fragement是可见的或当前的fragement时它会被调用。这样
Fragment visibleFragment=getCurrentFragment();
@Override
public void setUserVisibleHint(boolean isVisibleToUser) {
super.setUserVisibleHint(isVisibleToUser);
if (isVisibleToUser) {
}
}
Fragment getCurrentFragment()
{
Fragment currentFragment = getSupportFragmentManager()
.findFragmentById(R.id.content_frame);
return currentFragment;
}
调用函数调用这个函数可以得到当前可见fragment.if任何混乱,然后觉得免费问thankx :)
R.id.content_frame是在活动中添加片段的视图吗? –
参阅此http: //stackoverflow.com/a/9295085/2783386 –
你有没有设置片段标签? –