禁用客户端对搜索栏的更改

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;
     
  );

【讨论】:

以上是关于禁用客户端对搜索栏的更改的主要内容,如果未能解决你的问题,请参考以下文章

禁用交互式搜索 - 用户端

以编程方式更改搜索栏的进度绘图

禁用\更改 WooCommerce 通知 url 参数

不在全局范围内更改离子搜索栏的占位符和清除图标颜色?

SwiftUI:如何在搜索栏的文本更改时触发 api 调用以检索数据源

在 ExtJS 中,如何禁用悬停在禁用工具栏按钮上的样式更改?