recyclerview 中的 Seekbar 也会移动 recyclerview
Seekbar in recyclerview also moves recyclerview
基本上我已经在嵌套滚动视图中实现了 recyclerview,它在 recyclerview 的每个项目中包含弧形搜索栏。所以当我移动搜索栏时,recyclerview 也在滚动。
我尝试使用 nestedscrollview 和 focusableInTouchMode 选项但没有奏效。
device_list.apply {
device_list.layoutManager = GridLayoutManager(this@RoomActivity, 2)
device_list.adapter = DeviceAdapter()
}
<androidx.core.widget.NestedScrollView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginTop="?android:attr/actionBarSize"
android:background="@color/colorWhite">
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/device_list"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/marginSemiGlobal"
android:layout_marginBottom="@dimen/marginSemiGlobal"
android:overScrollMode="never"
android:nestedScrollingEnabled="false"
android:scrollbars="none" />
</androidx.core.widget.NestedScrollView>
<com.marcinmoskala.arcseekbar.ArcSeekBar
app:roundEdges="true"
android:layout_width="match_parent"
android:layout_below="@+id/top_layout"
app:progressBackgroundColor="@color/colorProgressBackground"
app:progressBackgroundWidth="8dp"
app:progressColor="@color/colorProgress"
android:id="@+id/dimmer"
app:progressWidth="8dp"
android:layout_height="100dp"
app:thumb="@drawable/ic_progress_thumb"
android:layout_centerHorizontal="true" />
我尝试将 setNestedScrollview 设置为 ViewCompact 并在触摸模式下使用焦点,但输出是相同的。
我在 RecyclerView 中使用 WebView 时遇到了类似的问题。我使用以下代码解决了。尝试为 ArcSeekBar 添加 setOnTouchListener
holder.tipContent.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
int action = event.getAction();
switch (action) {
case MotionEvent.ACTION_DOWN:
// Disallow ScrollView to intercept touch events.
v.getParent().requestDisallowInterceptTouchEvent(true);
break;
case MotionEvent.ACTION_UP:
//Allow ScrollView to intercept touch events once again.
v.getParent().requestDisallowInterceptTouchEvent(true);
break;
}
// Handle RecyclerView touch events.
v.onTouchEvent(event);
return true;
}
});
希望对您有所帮助。
基本上我已经在嵌套滚动视图中实现了 recyclerview,它在 recyclerview 的每个项目中包含弧形搜索栏。所以当我移动搜索栏时,recyclerview 也在滚动。
我尝试使用 nestedscrollview 和 focusableInTouchMode 选项但没有奏效。
device_list.apply {
device_list.layoutManager = GridLayoutManager(this@RoomActivity, 2)
device_list.adapter = DeviceAdapter()
}
<androidx.core.widget.NestedScrollView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginTop="?android:attr/actionBarSize"
android:background="@color/colorWhite">
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/device_list"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/marginSemiGlobal"
android:layout_marginBottom="@dimen/marginSemiGlobal"
android:overScrollMode="never"
android:nestedScrollingEnabled="false"
android:scrollbars="none" />
</androidx.core.widget.NestedScrollView>
<com.marcinmoskala.arcseekbar.ArcSeekBar
app:roundEdges="true"
android:layout_width="match_parent"
android:layout_below="@+id/top_layout"
app:progressBackgroundColor="@color/colorProgressBackground"
app:progressBackgroundWidth="8dp"
app:progressColor="@color/colorProgress"
android:id="@+id/dimmer"
app:progressWidth="8dp"
android:layout_height="100dp"
app:thumb="@drawable/ic_progress_thumb"
android:layout_centerHorizontal="true" />
我尝试将 setNestedScrollview 设置为 ViewCompact 并在触摸模式下使用焦点,但输出是相同的。
我在 RecyclerView 中使用 WebView 时遇到了类似的问题。我使用以下代码解决了。尝试为 ArcSeekBar 添加 setOnTouchListener
holder.tipContent.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
int action = event.getAction();
switch (action) {
case MotionEvent.ACTION_DOWN:
// Disallow ScrollView to intercept touch events.
v.getParent().requestDisallowInterceptTouchEvent(true);
break;
case MotionEvent.ACTION_UP:
//Allow ScrollView to intercept touch events once again.
v.getParent().requestDisallowInterceptTouchEvent(true);
break;
}
// Handle RecyclerView touch events.
v.onTouchEvent(event);
return true;
}
});
希望对您有所帮助。