Compose Bubble
v1.1.0
聊天/语音气泡宽度不同的箭头,背景,阴影属性,以创建聊天气泡,例如WhatsApp,Telegram或其他消息传递应用程序具有或箭头,并在底部具有箭头以创建信息气泡。
要将git项目带入您的构建中:
allprojects {
repositories {
...
maven { url 'https://jitpack.io' }
}
}
dependencies {
implementation 'com.github.SmartToolFactory:Compose-Bubble:Tag'
}
Modifier.bubble ,或CreateBubBleShape函数以Shape或BubbleLayout创建它,例如演示
@Composable
fun BubbleLayout (
modifier : Modifier = Modifier ,
bubbleState : BubbleState ,
backgroundColor : Color = Color . White ,
shadow : BubbleShadow ? = null,
borderStroke : BorderStroke ? = null,
content : @Composable () -> Unit
) {
Column (
modifier.bubble(
bubbleState = bubbleState,
color = backgroundColor,
shadow = shadow,
borderStroke = borderStroke
)
) {
content()
}
}
有4个测试气泡的演示。
DemoFullChat是小型聊天样本,它在发件人或用户的第一条消息上显示箭头DemoDynamicSize是用于动态更改气泡以实时观察变化。您可以添加自定义气泡以测试动态更改。DemoBubbles显示一些样品气泡DemoSimpleLayout用于演示Constraints.offset(x,y)和Contrainsts.constrainWidth Layout和Placeable| 完整的聊天z | 动态大小 | 气泡样品 |
|---|---|---|
![]() | ![]() | ![]() |
class BubbleState internal constructor(
var backgroundColor: Color = DefaultBubbleColor,
var cornerRadius: BubbleCornerRadius = BubbleCornerRadius(
topLeft = 8.dp,
topRight = 8.dp,
bottomLeft = 8.dp,
bottomRight = 8.dp,
),
var alignment: ArrowAlignment = ArrowAlignment.NONE,
var arrowShape: ArrowShape = ArrowShape.TRIANGLE_RIGHT,
var arrowOffsetX: Dp = 0.dp,
var arrowOffsetY: Dp = 0.dp,
var arrowWidth: Dp = 14.dp,
var arrowHeight: Dp = 14.dp,
var arrowRadius: Dp = 0.dp,
var drawArrow: Boolean = true,
var shadow: BubbleShadow? = null,
)
要创建一个泡泡以修改要绘制的气泡,请使用记住功能的超载之一
fun rememberBubbleState(
backgroundColor: Color = DefaultBubbleColor,
cornerRadius: Dp = 8.dp,
alignment: ArrowAlignment = ArrowAlignment.NONE,
arrowShape: ArrowShape = ArrowShape.TRIANGLE_RIGHT,
arrowOffsetX: Dp = 0.dp,
arrowOffsetY: Dp = 0.dp,
arrowWidth: Dp = 14.dp,
arrowHeight: Dp = 14.dp,
arrowRadius: Dp = 0.dp,
drawArrow: Boolean = true,
shadow: BubbleShadow? = null,
)