gpt4 book ai didi

android - 使用 holoeverywhere slider 插件时如何从 Activity 中获取当前可见的 fragment ?

转载 作者:太空狗 更新时间:2023-10-29 15:53:35 26 4
gpt4 key购买 nike

我想知道如何在 holoeverywhere 中执行这些操作:

将 slider 插件与 tabber 结合使用时,从 Activity 中获取对当前可见和 Activity fragment 的引用。

从 Activity/其他 fragment 中获取对 TabsTabsSwipeFragment 的引用并动态禁用/启用滑动。

最佳答案

为了获取当前 Activity 和可见的 Fragment,我的理解是 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 选项卡时,这可能会变得复杂,因为在任何给定时间都可以看到两个或更多 fragment (即在两者之间滑动)。您可能希望提供 fragment 标签并通过查询 isVisible 方法手动搜索它们。

现在为了禁用滑动,我不知道 TabsTabsSwipeFragment 是什么,但是你可以通过从 fragment 管理器查询它们的标签来获取对任何 fragment 的引用,如果你真的想要通过遍历所有 fragment 并比较类(Object.getClass).可以通过类似于“How do disable paging by swiping with finger in ViewPager but still be able to swipe programmatically?”的方式来禁止 ViewPager 被滑动

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;
}
}

关于android - 使用 holoeverywhere slider 插件时如何从 Activity 中获取当前可见的 fragment ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20926763/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com