布局:
<RelativeLayout
android:layout_marginTop="@dimen/dp_5"
android:background="@color/app_black"
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<LinearLayout
android:layout_alignParentLeft="true"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentStart="true">
<TextView
android:layout_marginLeft="@dimen/dp_10"
android:id="@+id/tvReset"
android:textSize="@dimen/size12"
android:textColor="@color/app_text_white"
android:layout_width="wrap_content"
android:layout_height="@dimen/dp_25"
android:gravity="center"
android:text="名称"
android:layout_marginStart="@dimen/dp_10" />
<View
android:background="@color/app_color_line"
android:layout_width="match_parent"
android:layout_height="@dimen/dp_min"/>
<androidx.recyclerview.widget.RecyclerView
android:overScrollMode="never"
android:id="@+id/leftRecyclerView"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
</LinearLayout>
<HorizontalScrollView
android:overScrollMode="never"
android:layout_marginLeft="@dimen/dp_100"
android:layout_alignParentRight="true"
android:clipToPadding="false"
android:paddingRight="@dimen/dp_10"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_alignParentEnd="true"
android:paddingEnd="@dimen/dp_10"
tools:ignore="RtlSymmetry">
<RelativeLayout
android:orientation="vertical"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/rightTopRecyclerView"
android:layout_width="wrap_content"
android:layout_height="@dimen/dp_25"/>
<View
android:layout_below="@+id/rightTopRecyclerView"
android:id="@+id/viewLine"
android:background="@color/app_color_line"
android:layout_width="match_parent"
android:layout_height="@dimen/dp_min"/>
<androidx.recyclerview.widget.RecyclerView
android:overScrollMode="never"
android:layout_below="@id/viewLine"
android:id="@+id/rightBottomRecyclerView"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
</RelativeLayout>
</HorizontalScrollView>
</RelativeLayout>
1.遇到的问题是在于 右侧的RecyclerView 可以作于滑动 左侧的保持不变,这里采用相对布局让左侧的RecyclerView铺满屏幕于最低部,item布局设置触摸反馈drawable, 问题在于当左侧的Item触摸反馈时候右侧的item也会有相应的触摸反馈。这里使用的的是’com.github.CymChad:BaseRecyclerViewAdapterHelper:2.9.30’
处理方式:
在右侧的viewGroup中调用左侧的Item的onTouchEvent(event);
helper.getView(R.id.viewGroup).setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) { leftBodyAdapter.getViewByPosition(leftRecyclerView,helper.getAdapterPosition(),R.id.viewGroup).onTouchEvent(event);
return true;
}
});
这个时候存在的问题是:右侧的click事件需要在OnTouchListener中实现了
或者直接使用layoutmanager获取当前的itemView左右两边的item大小相等的记录下左边的position调用
右侧onTouchEvent(event)触发item的press事件
View childAt = layoutManager.findViewByPosition((position));