我有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 –
你有沒有設置片段標籤? –