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,
)
描画するバブルを変更するバブブレスト酸塩を作成するには、記憶力の過負荷の1つを使用します
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,
)