tctc4869
V2EX  ›  Android

android 开发中有那种能在按钮控件内放布局容器的按钮的控件库么?

  •  
  •   tctc4869 · Mar 9, 2021 · 13402 views
    This topic created in 2069 days ago, the information mentioned may be changed or developed.

    android 开发里的原生按钮控件,不能像 windows 的 wpf 界面开发一样,直接在按钮( Button,radioButton,radioButton )里面放布局容器,然后再在这个布局容器里面进行配置,进而定制按钮。

    wpf 开发的按钮( Button,radioButton,radioButton ),本质上就是一个容器,在按钮容器里面放什么都可以,但又不影响用户对按钮本身的使用,用此方式轻松地对按钮外观进行定制。那有 android 第三方的控件库中,有没有这种容器按钮体系的控件库?

    举个例子,比如在 Button,RadioButton,RadioButton 内部显示两行不同内容的文字,并且两行文字的外观是不一样的,一行是红色,另一行是蓝色。

    在 wpf 里很轻松,直接在按钮内部放置布局容器,然后放两个显示文字的控件就可以。但是 android 开发要怎么做呢?

    自定义控件么?但我更想知道有没有已经实现的第三方控件库的方案

    11 replies  •  2021-03-10 21:06:15 +08:00
    viator42
    viator42
    Mar 9, 2021
    1
    如果是 flutter 的话就能做到,Android 原生只能变通着解决,用 Layout 代替 Button
    Tenma
    Tenma
    PRO
    Mar 9, 2021
    2
    Android 实现方式肯定不能和 WPF 一样啊,但是它本质上每个空间都是 View,所以你不需要用 Button,用 Layout 之类一样的,最后给他加个点击事件的监听即可。
    tctc4869
    tctc4869
    OP
    Mar 9, 2021
    3
    @viator42
    @Tenma
    我知道 android 只能用 layout 变通实现,不过这个有成熟的实现方案,也就是控件库?
    yolee599
    yolee599
    Mar 9, 2021
    4
    新建一个类继承,覆盖原有的绘制方法
    jon97
    jon97
    Mar 9, 2021 via iPhone
    5
    ilotuo
    ilotuo
    Mar 9, 2021
    6
    仅针对例子, SpannableString 可解?
    lwlizhe
    lwlizhe
    Mar 9, 2021
    7
    一般来说,都是自定义吧~
    控件库远远满足不了设计骚动的心~~
    dreamist
    dreamist
    Mar 9, 2021
    8
    题主具的这个例子,正确的做法是 Button + SpannableString 实现。其他复杂的情况,Button 本身是不支持的。在 Android 里面其实是严格区分 ViewGroup 和 View 的,能够装下其他布局的,得是一个 ViewGroup 。
    tctc4869
    tctc4869
    OP
    Mar 9, 2021
    9
    @dreamist 那有继承于 ViewGroup 抽象类下的容器按钮的控件库么
    HangoX
    HangoX
    Mar 9, 2021
    10
    android 原生只能用 Layout 自定义实现,用新的 JetpackCompose 可以实现
    dreamist
    dreamist
    Mar 10, 2021
    11
    @tctc4869 这个不清楚了,一般都是自定义一个 ViewGroup 实现就行了,实现起来也不难。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   712 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 92ms · UTC 19:51 · PVG 03:51 · LAX 11:51 · JFK 14:51
    ♥ Do have faith in what you're doing.