Compose Bubble
v1.1.0
Ширина пузыря в чате/речее.
Чтобы получить проект 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,
)
Для создания Bubblestate для модификации пузыря, который будет нарисован, используйте одну из перегрузки функций запоминания
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,
)