Для получения текущего активного и видимого фрагментов, я понимаю, что HoloEverywhere использует библиотеку поддержки Android. Попробуйте что-то похожее на «get currently displayed fragment».
public Fragment getActiveFragment() {
if (getSupportFragmentManager().getBackStackEntryCount() == 0) {
return null;
}
String tag = getSupportFragmentManager().getBackStackEntryAt(getSupportFragmentManager().getBackStackEntryCount() - 1).getName();
return getSupportFragmentManager().findFragmentByTag(tag);
}
Тем не менее, при использовании вкладки ActionBar это может усложниться, так как два или более фрагментов могут быть видны в любой момент времени (то есть, проводя между ними). Вы можете отправить теги фрагментов и выполнить поиск по ним вручную, запросив метод isVisible
.
Теперь для отключения Swiping, я понятия не имею, что TabsTabsSwipeFragment есть, но вы можете получить ссылку на любой фрагмент, запрашивая их тег от менеджера фрагмента, от того, если вы действительно хотите, обернув через все фрагменты и сравнивая класс (Object.getClass
). Отключение ViewPager от того прокатываются может быть достигнуто нечто похожее на «How do disable paging by swiping with finger in ViewPager but still be able to swipe programmatically?»
package com.yourcompany;
import android.content.Context;
import android.support.v4.view.ViewPager;
import android.util.AttributeSet;
import android.view.MotionEvent;
public class SwipeableViewPager extends ViewPager {
private boolean swipeable = true;
public SwipeableViewPager(Context context) {
super(context);
}
public SwipeableViewPager(Context context, AttributeSet attrs) {
super(context, attrs);
}
public void setSwipeable(boolean swipe) {
this.swipeable = swipe;
}
@Override
public boolean onInterceptTouchEvent(MotionEvent event) {
return (swipeable) super.onInterceptTouchEvent(event) : false;
}
@Override
public boolean onTouchEvent(MotionEvent event) {
return (swipeable) super.onTouchEvent(event) : false;
}
}
R elated - http://stackoverflow.com/a/21104084/80428 – Jay
Возможный дубликат [получить в настоящее время фрагмент] (http://stackoverflow.com/questions/9294603/get-currently-displayed-fragment) –