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

2021-03-09 09:26:02 +08:00
 tctc4869

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

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

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

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

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

8329 次点击
所在节点    Android
11 条回复
viator42
2021-03-09 09:32:30 +08:00
如果是 flutter 的话就能做到,Android 原生只能变通着解决,用 Layout 代替 Button
Tenma
2021-03-09 09:32:30 +08:00
Android 实现方式肯定不能和 WPF 一样啊,但是它本质上每个空间都是 View,所以你不需要用 Button,用 Layout 之类一样的,最后给他加个点击事件的监听即可。
tctc4869
2021-03-09 09:37:05 +08:00
@viator42
@Tenma
我知道 android 只能用 layout 变通实现,不过这个有成熟的实现方案,也就是控件库?
yolee599
2021-03-09 09:37:49 +08:00
新建一个类继承,覆盖原有的绘制方法
john6lq
2021-03-09 09:41:56 +08:00
ilotuo
2021-03-09 10:05:04 +08:00
仅针对例子, SpannableString 可解?
lwlizhe
2021-03-09 10:11:09 +08:00
一般来说,都是自定义吧~
控件库远远满足不了设计骚动的心~~
dreamist
2021-03-09 11:31:40 +08:00
题主具的这个例子,正确的做法是 Button + SpannableString 实现。其他复杂的情况,Button 本身是不支持的。在 Android 里面其实是严格区分 ViewGroup 和 View 的,能够装下其他布局的,得是一个 ViewGroup 。
tctc4869
2021-03-09 14:08:30 +08:00
@dreamist 那有继承于 ViewGroup 抽象类下的容器按钮的控件库么
HangoX
2021-03-09 16:41:12 +08:00
android 原生只能用 Layout 自定义实现,用新的 JetpackCompose 可以实现
dreamist
2021-03-10 21:06:15 +08:00
@tctc4869 这个不清楚了,一般都是自定义一个 ViewGroup 实现就行了,实现起来也不难。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/759828

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX