Compose Bubble
v1.1.0
Largura da bolha de bate -papo/fala de seta diferente, plano de fundo, propriedades de sombra para criar bolhas de bate -papo como Whatsapp, Telegram ou outros aplicativos de mensagens têm ou setas com seta na parte inferior para criar informações de informações.
Para obter um projeto Git em sua construção:
allprojects {
repositories {
...
maven { url 'https://jitpack.io' }
}
}
dependencies {
implementation 'com.github.SmartToolFactory:Compose-Bubble:Tag'
}
Modifier.bubble 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()
}
}
Existem 4 demos para testar bolhas .
DemoFullChat é uma amostra de bate -papo pequena que exibe seta na primeira mensagem do remetente ou usuárioDemoDynamicSize é para alterar as bolhas dinamicamente para observar mudanças em tempo real. Você pode adicionar suas bolhas personalizadas para testar alterações dinâmicas.DemoBubbles exibe algumas bolhas de amostraDemoSimpleLayout Placeable Layout demonstrar Contrainsts.constrainWidth Constraints.offset(x,y)| Chat completo z | Tamanho dinâmico | Amostras de bolhas |
|---|---|---|
![]() | ![]() | ![]() |
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,
)
Para criar um bubblestate para modificar a bolha para ser desenhada, use uma das sobrecargas de funções de lembrança
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,
)