所以我的活动有一个主ViewPager,在ViewPager里面,每个页面都有一个ScrollView的内容,在ScrollView内部还有另一个ViewPager.
这可能听起来很疯狂,但基本上外部ViewPager包含新闻文章,文章很长,所以有一个ScrollView,在ScrollView内部有多个缩略图/图片,他们也可以刷过.
我尝试过一些不同的自定义ViewPagers,它们具有不同的触摸事件拦截功能但似乎无法完美呈现.它要么完全吸收所有触摸事件,要么ScrollView的垂直滚动在该区域不起作用,否则将使内部水平滚动非常敏感/困难.
有人有完美的解决方案吗?
我在我的应用程序中使用导航抽屉,其中包含一些碎片,如下图所示.

每个片段包含在另一个ViewPager这是一个ImageSlider,再下面是一个ListView和顶部我使用的SwipeRefreshLayout.我的问题是图像滑块在Android 3.0或更高版本的设备上运行良好,但向左或向右滑动不适用于设备2.3及更低版本,而是调用父ViewPager的滑动,即导航片段.我正在使用支持版本4库来支持低于3.0的设备.除了那一个,所有功能在2.3设备上运行良好.我用谷歌搜索了它,但我在任何地方都没有找到任何帮助.因此,为了让它滚动我应该为此做什么,任何想法/帮助将受到高度赞赏.
android android-fragments android-2.3-gingerbread android-viewpager android-navigation
所以我创建了一个片段活动,其中包含带有TabPageIndicator的Viewpager从片段滑动到另一个片段,并且在每个片段中我创建了一个ListView,其中包含一个ViewPager作为Header视图,问题是viewPager不刷卡即使我取消主ViewPager swipping
我用ActionBar标签尝试了同样的事情,但它也没有用
这是我的片段活动
public class SampleTabsStyled extends FragmentActivity {
private static final String[] CONTENT = new String[] { "Recent", "Artists",
"Albums", "Songs", "Playlists", "Genres" };
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.simple_tabs);
FragmentPagerAdapter adapter = new GoogleMusicAdapter(
getSupportFragmentManager());
final ViewPager pager = (ViewPager) findViewById(R.id.pager);
pager.setAdapter(adapter);
pager.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
// TODO Auto-generated method stub
switch (event.getAction()) {
case MotionEvent.ACTION_MOVE:
pager.requestDisallowInterceptTouchEvent(true);
break;
case MotionEvent.ACTION_UP:
case MotionEvent.ACTION_CANCEL:
pager.requestDisallowInterceptTouchEvent(false);
break;
}
return true;
} …Run Code Online (Sandbox Code Playgroud) android android-listview android-fragments android-viewpager