Meh*_*nai 2 android android-holo-everywhere
我想知道如何在holoeverywhere中执行这些操作:
将滑块插件与tabber结合使用时,可以参考活动中当前可见且活动的片段.
从活动/其他片段中获取对TabsTabsSwipeFragment的引用,并动态禁用/启用滑动.
为了获得当前活跃且可见的片段,我理解HoloEverywhere使用Android的支持库.尝试类似" 获取当前显示的片段 "的内容.
public Fragment getActiveFragment() {
if (getSupportFragmentManager().getBackStackEntryCount() == 0) {
return null;
}
String tag = getSupportFragmentManager().getBackStackEntryAt(getSupportFragmentManager().getBackStackEntryCount() - 1).getName();
return getSupportFragmentManager().findFragmentByTag(tag);
}
Run Code Online (Sandbox Code Playgroud)
也就是说,当使用ActionBar标签时,这可能会变得复杂,因为在任何给定时间都可以看到两个或更多个碎片(即在两者之间滑动).您可能希望提供Fragments标记并通过查询isVisible方法手动搜索它们.
现在禁用滑动,我不知道TabsTabsSwipeFragment是什么,但你可以通过从Fragment管理器查询它们的标签来获取对任何Fragment的引用,如果你真的想通过循环遍历所有Fragments并比较class(Object.getClass).禁用ViewPager可以通过类似于" 如何通过在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;
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
42026 次 |
| 最近记录: |