【问题标题】:Custom Seekbar with on top value具有最高价值的自定义搜索栏
【发布时间】:2019-10-18 08:15:47
【问题描述】:

我正在尝试为我的应用创建一些 Seekbar 作为距离值。我喜欢它看起来像这样(图片来自 - link):

有人可以举一个简单的例子来说明如何制作这样的东西吗?

我知道我可以使用来自 Github 的“已经制作”的 Seekbar,但我正在尝试理解这个概念,以便进一步设计它。

谢谢

【问题讨论】:

  • 老实说,它们都包含 Apache 2.0 许可证,我不完全理解如果我可以在将分发和销售的应用程序中使用它们,所以我试图自己理解。除非你知道说 Apache 2.0 可以作为它添加到应用程序中,而不受销售应用程序的限制。
  • 检查here

标签: android android-seekbar material-components material-components-android android-slider


【解决方案1】:

借助 Google 提供的材料组件库版本 1.2.0,您可以使用 Slider 组件。

只需添加您的布局:

<LinearLayout
    android:layout_height="wrap_content"
    android:clipChildren="false"
    android:clipToPadding="false"
    ...>


    <com.google.android.material.slider.Slider
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        app:labelBehavior="withinBounds"
        android:value="7"
        android:valueFrom="0"
        android:valueTo="10"
        .../>

</LinearLayout>

您可以使用这些属性自定义颜色:

<com.google.android.material.slider.Slider
    app:activeTrackColor="@color/primaryDarkColor"
    app:inactiveTrackColor="@color/primaryLightColor"
    app:thumbColor="@color/primaryDarkColor"
    .../>

或者您可以使用带有materialThemeOverlay 属性的自定义样式覆盖默认颜色:

    <com.google.android.material.slider.Slider
        style="@style/Custom_Slider_Style"

与:

  <style name="Custom_Slider_Style" parent="Widget.MaterialComponents.Slider">
    <item name="materialThemeOverlay">@style/slider_overlay</item>
  </style>

  <style name="slider_overlay">
    <item name="colorPrimary">@color/...</item>
    <item name="colorOnPrimary">@color/...</item>
  </style>

或在布局中使用android:theme attr:

<com.google.android.material.slider.Slider
    android:theme="@style/slider_overlay"
    ../>

例子:

如果您想自定义 工具提示 形状,您可以使用 labelStyle 属性:

    <com.google.android.material.slider.Slider
        app:labelStyle="@style/tooltip"

与:

<style name="tooltip" parent="Widget.MaterialComponents.Tooltip">
    <item name="shapeAppearanceOverlay">@style/tooltipShOverylay</item>
    <item name="backgroundTint">@color/....</item>
</style>

<style name="tooltipShOverylay">
    <item name="cornerSize">50%</item>
</style>

【讨论】:

  • 我使用的是材料库版本 1.3.0-alpha01,但我看到的不是这个气泡,而是顶部的工具提示。如何显示这个确切的气泡?
  • @FahadSaleem 库中的工具提示已更改。在任何情况下,您都可以使用 labelStyle 属性更改形状。检查更新的答案。
  • 多么全面的答案!比文档好!恭喜。
  • @GabrieleMariotti 是否有任何方法可以始终显示工具提示,即使滑块不在焦点上?
猜你喜欢
  • 1970-01-01
  • 2017-12-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-11-16
相关资源
最近更新 更多