Compose Bubble
v1.1.0
Chat/Sprachblasenbreite Unterschiedlicher Pfeil, Hintergrund und Schatteneigenschaften zum Erstellen von Chat -Blasen wie WhatsApp, Telegramm oder anderen Messaging -Apps haben oder Pfeile mit Pfeil unten, um Infoblasen zu erstellen.
Um ein Git -Projekt in Ihren Build zu bringen:
allprojects {
repositories {
...
maven { url 'https://jitpack.io' }
}
}
dependencies {
implementation 'com.github.SmartToolFactory:Compose-Bubble:Tag'
}
Modifier.bubble oder CreateBubBleshape -Funktion, um dies als Shape oder BubbleLayout wie in der Demo zu erstellen, z. B.
@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()
}
}
Es gibt 4 Demos, um Blasen zu testen.
DemoFullChat ist ein kleines Chat -Beispiel, das Pfeil auf der ersten Nachricht vom Absender oder Benutzer anzeigtDemoDynamicSize dient dazu, blasen dynamisch zu ändern, um Veränderungen in Echtzeit zu beobachten. Sie können Ihre benutzerdefinierten Blasen hinzufügen, um dynamische Änderungen zu testen.DemoBubbles zeigt einige Beispielblasen anDemoSimpleLayout dient zum Nachweis Constraints.offset(x,y) und Contrainsts.constrainWidth auf Layout und Placeable| Voller Chat z | Dynamische Größe | Blasenproben |
|---|---|---|
![]() | ![]() | ![]() |
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,
)
So erstellen
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,
)