Android Viewpager滑动不使用回收器视图
我在同一活动中有一个ViewPager和RecyclerView,两个视图重叠(RecyclerView在前面,ViewPager在后面)。当我在空白处滑动时,我的ViewPager滑动正常工作,但当我在RecyclerView上滑动时,ViewPager滑动不工作。我在Recyclerview中有button和seekbar。我想查看当用户在除seekbar之外的RecyclerView上滑动时的寻呼机滑动 我的布局是:Android Viewpager滑动不使用回收器视图,android,android-recyclerview,android-viewpager,swipe,Android,Android Recyclerview,Android Viewpager,Swipe,我在同一活动中有一个ViewPager和RecyclerView,两个视图重叠(RecyclerView在前面,ViewPager在后面)。当我在空白处滑动时,我的ViewPager滑动正常工作,但当我在RecyclerView上滑动时,ViewPager滑动不工作。我在Recyclerview中有button和seekbar。我想查看当用户在除seekbar之外的RecyclerView上滑动时的寻呼机滑动 我的布局是: <android.support.v4.view.ViewPage
<android.support.v4.view.ViewPager xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/viewPager"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_alignParentTop="true" />
<RelativeLayout
android:id="@+id/imagesLayout"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_above="@+id/bottomRelativeLayout"
android:layout_below="@+id/timerLayout"
android:layout_marginBottom="5dp"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:layout_marginTop="5dp"
android:visibility="gone">
<android.support.v7.widget.RecyclerView
android:id="@+id/myRecyclerView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_marginBottom="5dp"
android:clickable="true"
android:fadingEdgeLength="30dp"
android:focusable="true"
android:gravity="center"
android:horizontalSpacing="3dp"
android:listSelector="@android:color/transparent"
android:numColumns="3"
android:overScrollMode="never"
android:paddingLeft="20dp"
android:paddingRight="20dp"
android:paddingBottom="15dp"
android:paddingTop="15dp"
android:requiresFadingEdge="vertical"
android:scrollbars="none" />
</RelativeLayout>
我搜索了很多关于此主题的内容,但找不到任何解决方案。我的viewpager适配器如下所示:
public class ViewPagerAdapter extends FragmentStatePagerAdapter {
FragmentManager fm;
private SparseArray<Fragment> registeredFragments = new SparseArray<>();
public ViewPagerAdapter(FragmentManager fm) {
super(fm);
this.fm=fm;
}
@Override
public Fragment getItem(int position) {
Fragment fragment = new ImageFragment();
Bundle args = new Bundle();
args.putSerializable("TabObject", Constants.tabs.get(position));
fragment.setArguments(args);
return fragment;
}
@Override
public int getCount() {
return Constants.tabs.size();
}
@SuppressLint("RestrictedApi")
public List<Fragment> getFragments(){
return fm.getFragments();
}
@Override
public int getItemPosition(Object object) {
if (object instanceof ImageFragment) {
// Create a new method notifyUpdate() in your fragment
// it will get call when you invoke
// notifyDatasetChaged();
// ((SoundsFragment) object).updateGridData();
}
//don't return POSITION_NONE, avoid fragment recreation.
return super.getItemPosition(object);
}
@Override
public Object instantiateItem(ViewGroup container, int position) {
Fragment fragment = (Fragment) super.instantiateItem(container, position);
registeredFragments.put(position, fragment);
return fragment;
}
public Fragment getRegisteredFragment(int position) {
return registeredFragments.get(position);
}
@Override
public CharSequence getPageTitle(int position) {
return "OBJECT " + (position + 1);
}
}
公共类ViewPagerAdapter扩展了FragmentStatePagerAdapter{
碎片管理器fm;
专用SparseArray registeredFragments=新SparseArray();
公共ViewPagerAdapter(碎片管理器fm){
超级(fm);
这个.fm=fm;
}
@凌驾
公共片段getItem(int位置){
Fragment Fragment=新的ImageFragment();
Bundle args=新Bundle();
args.putSerializable(“TabObject”,Constants.tabs.get(position));
fragment.setArguments(args);
返回片段;
}
@凌驾
public int getCount(){
返回常量.tabs.size();
}
@SuppressLint(“RestrictedApi”)
公共列表getFragments(){
返回fm.getFragments();
}
@凌驾
public int getItemPosition(对象){
if(ImageFragment的对象实例){
//在片段中创建一个新方法notifyUpdate()
//当您调用时,它将得到调用
//notifydatasetached();
//((SoundsFragment)对象);
}
//不要返回位置\无,避免碎片娱乐。
返回super.getItemPosition(对象);
}
@凌驾
公共对象实例化项(视图组容器,int位置){
Fragment Fragment=(Fragment)super.instanceItem(容器,位置);
注册碎片。放置(位置,碎片);
返回片段;
}
公共片段getRegisteredFragment(int位置){
返回registeredFragments.get(位置);
}
@凌驾
公共字符序列getPageTitle(int位置){
返回“对象”+(位置+1);
}
}
您可以使用
(一)
2) 在你的recylerView标签里面
app:layout_behavior="@string/appbar_scrolling_view_behavior"
等等,请再详细一点。这两个都在同一活动中,您可以在ViewPager上而不是在RecyclerView上滑动是什么意思查看您是否创建了适配器?你将适配器连接到RecyclerView了吗?我使用viewpager查看背景图像。当我滑动不同的类别时,会打开。我只想滑动viewpager。当我滑动空白区域时,它会起作用,但当我滑动RecyclerView时,viewpager滑动不起作用。我创建了viewpager和recylerview的适配器。我认为这是您的适配器中的一些东西。请发布代码我更新了我的问题并添加了适配器
ViewCompat.setNestedScrollingEnabled(recyclerView, false);
app:layout_behavior="@string/appbar_scrolling_view_behavior"