Abi*_*han 9 android android-fragments android-2.3-gingerbread android-viewpager android-navigation
我在我的应用程序中使用导航抽屉,其中包含一些碎片,如下图所示.

每个片段包含在另一个ViewPager这是一个ImageSlider,再下面是一个ListView和顶部我使用的SwipeRefreshLayout.我的问题是图像滑块在Android 3.0或更高版本的设备上运行良好,但向左或向右滑动不适用于设备2.3及更低版本,而是调用父ViewPager的滑动,即导航片段.我正在使用支持版本4库来支持低于3.0的设备.除了那一个,所有功能在2.3设备上运行良好.我用谷歌搜索了它,但我在任何地方都没有找到任何帮助.因此,为了让它滚动我应该为此做什么,任何想法/帮助将受到高度赞赏.
你可以用它ViewPager作为你的父母ViewPager。这允许孩子ViewPager滚动。
public class CustomViewPager extends ViewPager {
public CustomViewPager(Context context) {
super(context);
}
public CustomViewPager(Context context, AttributeSet attrs) {
super(context, attrs);
}
@Override
protected boolean canScroll(View v, boolean checkV, int dx, int x, int y) {
try {
//Handle the issue only in lower versions of android
if (v != this && v instanceof ViewPager && CJRAppCommonUtility.getOSVersion() < android.os.Build.VERSION_CODES.HONEYCOMB) {
ViewPager viewPager = (ViewPager) v;
int currentPage = viewPager.getCurrentItem();
int size = viewPager.getAdapter().getCount();
//if ViewPager has reached its end and if user tries to swipe left allow the parent to scroll
if (currentPage == (size - 1) && dx < 0) {
return false;
}
//if ViewPager has reached its start and if user tries to swipe right allow the parent to scroll
else if (currentPage == 0 && dx > 0) {
return false;
}
//Allow the child to scroll hence blocking parent scroll
else {
return true;
}
}
return super.canScroll(v, checkV, dx, x, y);
} catch (Exception e) {
e.printStackTrace();
return false;
}
}
}
Run Code Online (Sandbox Code Playgroud)
Android 开发者网站对处理Viewgroup. 您可以在这里参考:http ://developer.android.com/training/gestures/viewgroup.html
希望能帮助到你!!
| 归档时间: |
|
| 查看次数: |
2456 次 |
| 最近记录: |