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,
)