gpt4 book ai didi

java - 一个 Activity 中有两个 ViewPager

转载 作者:搜寻专家 更新时间:2023-11-01 08:48:27 24 4
gpt4 key购买 nike

我有两个关于 ViewPager 的问题。

我的 Activity 中有 2 个 ViewPagers,每周(日期)一个。例如,一个用于 14/9/14 - 20/9/14,另一个用于下周 21/9/14 - 27/9/14。当我将 ViewPager 滑动到下一个时,它会将每个 ViewPager 更改为下一周(21/9/14 - 27/9/14、28/9/14 - 4/10/14)。

  1. 当我更改第二个 ViewPager 的数据,然后将第一个 ViewPager 滑动到下一个(这与我更改的第二个 View 寻呼机数据是同一周)时,它不会显示更改我所做的,除非我再滑动两次然后返回到更改后的一周(因为 ViewPager 的内存)。我尝试了 mPager1.setOffscreenPageLimit(0); ,但它没有帮助。我该怎么做才能解决这个问题?

  2. 我希望当我滑动其中一个 ViewPager 时,另一个会像我的手指滑动另一个 ViewPager 一样自动设置动画。有什么想法吗?

最佳答案

希望对您有所帮助:

it won't show the changes that I made

使用adapter.notifyDataSetChanged();进行更改后。

I want that when I slide one of my ViewPagers, so the other one will animate itself exactly like my finger is sliding the other ViewPager. Any ideas how to do that?

  @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
viewPager1= (ViewPager) findViewById(R.id.pager1);
viewPager2= (ViewPager) findViewById(R.id.pager2);

viewPager1.setAdapter(new MyAdapter1(getSupportFragmentManager()));
viewPager2.setAdapter(new MyAdapter2(getSupportFragmentManager()));

viewPager1.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
viewPager2.onTouchEvent(event);
return false;
}
});

viewPager2.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
viewPager1.onTouchEvent(event);
return false;
}
});

}

enter image description here

如果你有

09-19 05:49:29.313: E/AndroidRuntime(1272): java.lang.IllegalArgumentException: pointerIndex out of range

尝试:在你的布局文件中你必须使用 <package name of HackyViewPager.HackyViewPager而不是 <android.support.v4.view.ViewPager

public class HackyViewPager extends ViewPager {

public HackyViewPager(Context context) {
super(context);

}
public HackyViewPager(Context context, AttributeSet attrs) {
super(context, attrs);
}
@Override
public boolean onInterceptTouchEvent(MotionEvent ev) {

try {
return super.onInterceptTouchEvent(ev);
} catch (IllegalArgumentException e) {
e.printStackTrace();
return false;
}

}
@Override
public boolean onTouchEvent(MotionEvent event) {
try {
return super.onTouchEvent(event);
}catch (IllegalArgumentException e) {
e.printStackTrace();
return false;
}

}

}

引用:

Controlling two ViewPager Together

关于java - 一个 Activity 中有两个 ViewPager,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25912339/

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