android 开发里的原生按钮控件,不能像 windows 的 wpf 界面开发一样,直接在按钮( Button,radioButton,radioButton )里面放布局容器,然后再在这个布局容器里面进行配置,进而定制按钮。
wpf 开发的按钮( Button,radioButton,radioButton ),本质上就是一个容器,在按钮容器里面放什么都可以,但又不影响用户对按钮本身的使用,用此方式轻松地对按钮外观进行定制。那有 android 第三方的控件库中,有没有这种容器按钮体系的控件库?
举个例子,比如在 Button,RadioButton,RadioButton 内部显示两行不同内容的文字,并且两行文字的外观是不一样的,一行是红色,另一行是蓝色。
在 wpf 里很轻松,直接在按钮内部放置布局容器,然后放两个显示文字的控件就可以。但是 android 开发要怎么做呢?
自定义控件么?但我更想知道有没有已经实现的第三方控件库的方案
![]() |
1
viator42 2021-03-09 09:32:30 +08:00
如果是 flutter 的话就能做到,Android 原生只能变通着解决,用 Layout 代替 Button
|
![]() |
2
Tenma 2021-03-09 09:32:30 +08:00
Android 实现方式肯定不能和 WPF 一样啊,但是它本质上每个空间都是 View,所以你不需要用 Button,用 Layout 之类一样的,最后给他加个点击事件的监听即可。
|
![]() |
3
tctc4869 OP |
![]() |
4
yolee599 2021-03-09 09:37:49 +08:00
新建一个类继承,覆盖原有的绘制方法
|
5
john6lq 2021-03-09 09:41:56 +08:00 via iPhone
|
![]() |
6
ilotuo 2021-03-09 10:05:04 +08:00
仅针对例子, SpannableString 可解?
|
7
lwlizhe 2021-03-09 10:11:09 +08:00
一般来说,都是自定义吧~
控件库远远满足不了设计骚动的心~~ |
![]() |
8
dreamist 2021-03-09 11:31:40 +08:00
题主具的这个例子,正确的做法是 Button + SpannableString 实现。其他复杂的情况,Button 本身是不支持的。在 Android 里面其实是严格区分 ViewGroup 和 View 的,能够装下其他布局的,得是一个 ViewGroup 。
|
10
HangoX 2021-03-09 16:41:12 +08:00
android 原生只能用 Layout 自定义实现,用新的 JetpackCompose 可以实现
|