Compose Bubble
v1.1.0
แชท/คำพูดความกว้างของฟองลูกศรที่แตกต่างกันพื้นหลังคุณสมบัติเงาเพื่อสร้างฟองแชทเช่น WhatsApp, โทรเลขหรือแอพส่งข้อความอื่น ๆ มีหรือลูกศรที่มีลูกศรที่ด้านล่างเพื่อสร้างฟองข้อมูล
เพื่อรับโครงการ GIT ในงานสร้างของคุณ:
allprojects {
repositories {
...
maven { url 'https://jitpack.io' }
}
}
dependencies {
implementation 'com.github.SmartToolFactory:Compose-Bubble:Tag'
}
Modifier.bubble หรือ createBubbleshape function เพื่อสร้างสิ่งนี้เป็น 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,
)