在 RecyclerView 中禁用搜索栏
Disable seekbar inside RecyclerView
我需要播放里面的音频RecyclerView
。要求是 SeekBar
将在用户单击播放按钮后启用。所以我试过了。
<SeekBar
android:id="@+id/seek_Media_Player"
android:layout_width="match_parent"
android:layout_marginLeft="@dimen/_6sdp"
android:clickable="false"
android:focusable="false"
android:focusableInTouchMode="false"
android:layout_marginRight="@dimen/_6sdp"
android:layout_height="wrap_content" />
但它不起作用。当我在 Activity
或 Fragment
中使用 SeekBar
而不是在 RecyclerView
中时,android:clickable="false"
有效。我还尝试在运行时设置这些属性但没有奏效。
设置 setEnabled(false)
使 SeekBar
不可见。从过去的 6 个小时开始,我一直在为此苦苦思索。我张贴项目图片只是为了展示。请告诉我如何 disable/enable 单击 SeekBar
。
好的,所以我找到了解决方案。以前有人怀疑,但我正在寻找其他方法来做到这一点。我认为问题出在我的代码中的某个地方。但事实并非如此。以下是我使用的完整解决方案。
public class CustomSeekBar extends AppCompatSeekBar {
private boolean fuzzyEnable;
public void setFuzzyEnable(boolean fuzzyEnable) {
this.fuzzyEnable = fuzzyEnable;
}
public CustomSeekBar(Context context) {
super(context);
}
public CustomSeekBar(Context context, AttributeSet attrs) {
super(context, attrs);
}
public CustomSeekBar(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
}
@Override
public boolean onTouchEvent(MotionEvent event) {
return fuzzyEnable?super.onTouchEvent(event):true;
}
}
我需要播放里面的音频RecyclerView
。要求是 SeekBar
将在用户单击播放按钮后启用。所以我试过了。
<SeekBar
android:id="@+id/seek_Media_Player"
android:layout_width="match_parent"
android:layout_marginLeft="@dimen/_6sdp"
android:clickable="false"
android:focusable="false"
android:focusableInTouchMode="false"
android:layout_marginRight="@dimen/_6sdp"
android:layout_height="wrap_content" />
但它不起作用。当我在 Activity
或 Fragment
中使用 SeekBar
而不是在 RecyclerView
中时,android:clickable="false"
有效。我还尝试在运行时设置这些属性但没有奏效。
设置 setEnabled(false)
使 SeekBar
不可见。从过去的 6 个小时开始,我一直在为此苦苦思索。我张贴项目图片只是为了展示。请告诉我如何 disable/enable 单击 SeekBar
。
好的,所以我找到了解决方案。以前有人怀疑,但我正在寻找其他方法来做到这一点。我认为问题出在我的代码中的某个地方。但事实并非如此。以下是我使用的完整解决方案。
public class CustomSeekBar extends AppCompatSeekBar {
private boolean fuzzyEnable;
public void setFuzzyEnable(boolean fuzzyEnable) {
this.fuzzyEnable = fuzzyEnable;
}
public CustomSeekBar(Context context) {
super(context);
}
public CustomSeekBar(Context context, AttributeSet attrs) {
super(context, attrs);
}
public CustomSeekBar(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
}
@Override
public boolean onTouchEvent(MotionEvent event) {
return fuzzyEnable?super.onTouchEvent(event):true;
}
}