我正在尝试在listview中添加视图寻呼机,但是当我尝试更改视图寻呼机页面时,它正在影响Listview手势,我的意思是listview和寻呼机的姿势正在协同工作
但是我想要,如果我正在翻转viewpgaer的寻呼机列表视图不会滚动,那么这个
我已成功在listview中添加了view pager,但请解决此问题:(。我也尝试添加手势但不成功
谢谢
答案 0 :(得分:1)
此处可能的解决方案:http://dallasgutauckis.com/2013/04/30/android-putting-a-viewpager-inside-a-listview/
将ViewPager放在ListView中的问题是,在ListView开始使用触摸事件而不是委托给子节点以便启用ListView的滚动之前,它只需要少量的垂直(Y)增量。这很好,但问题经常发生在ViewPager已经开始处理页面更改(水平拖动时),导致糟糕的用户体验导致两个视图的分页和滚动不正确。
有几种方法可以尝试解决这个问题。
受挫的例子:
class MyActivity extends Activity {
private ViewPager mViewPager;
private View mTouchTarget;
@Override
protected void onCreate(Bundle icicle) {
super.onCreate(icicle);
setContentView(R.layout.example);
mViewPager = (ViewPager) findViewById(R.id.view_pager);
mViewPager.setOnPageChangeListener(new OnPageChangeListener() {
private int mPreviousState = ViewPager.SCROLL_STATE_IDLE;
@Override
public void onPageSelected(int position) {
// NO-OP
}
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
// NO-OP
}
@Override
public void onPageScrollStateChanged(int state) {
// All of this is to inhibit any scrollable container from consuming our touch events as the user is changing pages
if (mPreviousState == ViewPager.SCROLL_STATE_IDLE) {
if (state == ViewPager.SCROLL_STATE_DRAGGING) {
mTouchTarget = mViewPager;
}
} else {
if (state == ViewPager.SCROLL_STATE_IDLE || state == ViewPager.SCROLL_STATE_SETTLING) {
mTouchTarget = null;
}
}
mPreviousState = state;
}
});
}
@Override
public boolean dispatchTouchEvent(MotionEvent ev) {
if (mTouchTarget != null) {
boolean wasProcessed = mTouchTarget.onTouchEvent(ev);
if (!wasProcessed) {
mTouchTarget = null;
}
return wasProcessed;
}
return super.dispatchTouchEvent(ev);
}
}
现在,我们有一个ViewPager,一旦页面开始更改就会保留对触摸事件的控制,并在分页空闲或安定时释放它。
答案 1 :(得分:0)