禁用客户端对搜索栏的更改
Posted
技术标签:
【中文标题】禁用客户端对搜索栏的更改【英文标题】:Disable changes on seekbar by client 【发布时间】:2013-04-23 10:45:25 【问题描述】:我有一个 SeekBar,它会在我需要时更改进度,但我不希望用户能够手动更改它。
我尝试将 SeekBar 设置为:
<SeekBar
android:id="@+id/seekBar1"
android:layout_
android:layout_
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="78dp"
android:progress="10"
android:max="100"
android:clickable="false"
android:thumb="@drawable/transparent"
android:progressDrawable="@drawable/customprogressbar" />
但它不起作用。
我该怎么做?
这或多或少是客户如何看待这一点的一个例子。
我使用了自定义样式,因为将来我需要根据 SeekBar 所在的部分更改背景图像和进度。
谢谢大家!
【问题讨论】:
复制:***.com/questions/4136569/… How to Set an Android SeekBar to be unmoveable/frozen?的可能重复 【参考方案1】:您可以使用 android:enabled="false" ,但它会显示 禁用效果 [使搜索栏变暗]。
因此,如果您想显示启用搜索栏而不响应拇指活动,请实现触摸事件处理程序并返回 true,如下所示。
seekBar.setOnTouchListener(new OnTouchListener()
@Override
public boolean onTouch(View v, MotionEvent event)
return true;
);
【讨论】:
如何返回默认的onTouch
行为?说我是否需要根据类型启用和禁用触摸。
kotlin 答案:seekBar1.setOnTouchListener _: View?, _: MotionEvent? -> 真 【参考方案2】:
您可以做的一件事是禁用
搜索栏,
赞seekbar.setEnabled(false)
这样做框架不会接受任何 来自用户和您的触摸事件 只能通过代码更改进度级别。
希望对你有帮助.......
【讨论】:
尽管您可能希望包含一个自定义可绘制对象,因为将搜索栏设置为禁用会改变搜索栏的外观。 @Arjun,我已经测试了你对我的建议,它有效;)谢谢! 我希望搜索栏只能通过拇指移动并禁用点击。怎么办?【参考方案3】:只需从 CustomSeekBar 类的 onTouch 方法返回 false。
希望这行得通!
【讨论】:
【参考方案4】:因此,如果您想显示启用搜索栏而不响应拇指活动,请实现触摸事件处理程序并返回 true,如下所示。
seekBar.setOnTouchListener(new OnTouchListener()
@Override
public boolean onTouch(View v, MotionEvent event)
return true;
);
【讨论】:
以上是关于禁用客户端对搜索栏的更改的主要内容,如果未能解决你的问题,请参考以下文章