หน้านี้จะอธิบายวิธีสร้างคอมโพเนนต์และโครงสร้างของการ์ด การ์ดคืออินเทอร์เฟซผู้ใช้ที่แอป Google Chat สามารถใช้เพื่อนำเสนอและรวบรวมข้อมูลจากผู้ใช้ Chat แอปใน Chat สามารถสร้างและแสดงการ์ดในอินเทอร์เฟซต่อไปนี้
- ข้อความที่มีการ์ดอย่างน้อย 1 รายการ
- หน้าแรก ซึ่งเป็นการ์ดที่ปรากฏจากแท็บหน้าแรกในข้อความส่วนตัวที่มีแอปใน Chat
- กล่องโต้ตอบ ซึ่งเป็นการ์ดที่เปิดในหน้าต่างใหม่จากข้อความและหน้าแรก
ในหน้านี้ คุณจะได้เรียนรู้เกี่ยวกับองค์ประกอบต่อไปนี้ของการ์ด
- ส่วนหัว ซึ่งโดยปกติจะมีชื่อของการ์ดหรือส่วนของการ์ด
- ส่วน ซึ่งเป็นเนื้อหาหลักของการ์ด รวมถึงวิดเจ็ตและองค์ประกอบแบบอินเทอร์แอกทีฟอื่นๆ ในส่วนการ์ด คุณสามารถเพิ่มโครงสร้างให้กับการ์ดได้มากขึ้น ซึ่งรวมถึงคอลัมน์และตารางกริด
- ส่วนท้ายแบบคงที่ ซึ่งจะปรากฏที่ด้านล่างของกล่องโต้ตอบเพื่อแสดงองค์ประกอบ UI แบบถาวร เช่น ปุ่ม
ข้อกำหนดเบื้องต้น
แอป Google Chat ที่กำหนดค่าให้รับและตอบสนองต่อการโต้ตอบของผู้ใช้ หากต้องการสร้างแอป Chat แบบอินเทอร์แอกทีฟ ให้ทำตามคู่มือเริ่มใช้งานฉบับย่อข้อใดข้อหนึ่งต่อไปนี้โดยอิงตามสถาปัตยกรรมแอปที่คุณต้องการใช้
- บริการ HTTP ที่มี Google Cloud Functions
- Google Apps Script
- Google Cloud Dialogflow CX
- Google Cloud Pub/Sub
ใช้เครื่องมือสร้างการ์ดเพื่อออกแบบและดูตัวอย่างการรับส่งข้อความและอินเทอร์เฟซผู้ใช้สำหรับแอปใน Chat ดังนี้
เปิดเครื่องมือสร้างการ์ดเพิ่มส่วนหัว
วิดเจ็ต CardHeader แสดงส่วนหัวของการ์ด ส่วนหัวอาจมีชื่อ ชื่อย่อย และรูปภาพสัญลักษณ์แทนสำหรับบัตร
ต่อไปนี้เป็นตัวอย่างของCardHeader
เพิ่มส่วนบัตรอย่างน้อย 1 ส่วน
วิดเจ็ต CardSection เป็นคอนเทนเนอร์ระดับสูงภายในการ์ด คุณใช้ส่วนของการ์ดเพื่อจัดกลุ่มวิดเจ็ตภายในการ์ด สำหรับส่วนการ์ดแต่ละส่วน คุณสามารถใส่ส่วนหัวและวิดเจ็ตอย่างน้อย 1 รายการ
ต่อไปนี้เป็นตัวอย่างของ CardSection ที่มีวิดเจ็ต textParagraph 2 รายการ
เพิ่มตัวแบ่งแนวนอนระหว่างวิดเจ็ต
วิดเจ็ต divider จะแสดงเส้นแนวนอนที่ครอบคลุมความกว้างของการ์ดระหว่างวิดเจ็ตที่ซ้อนกันในแนวตั้ง เส้นนี้เป็นตัวแบ่งภาพที่ช่วยให้ผู้ใช้แยกความแตกต่างระหว่างวิดเจ็ตหนึ่งกับอีกวิดเจ็ตหนึ่งได้ ทำให้การ์ดสแกนและเข้าใจได้ง่ายขึ้น
ต่อไปนี้คือการ์ดที่ประกอบด้วยวิดเจ็ต divider รายการระหว่างวิดเจ็ตประเภทอื่นๆ
เพิ่มคอลัมน์
วิดเจ็ต columns จะแสดงคอลัมน์ได้สูงสุด 2 คอลัมน์ในการ์ด คุณสามารถเพิ่มวิดเจ็ตลงในแต่ละคอลัมน์ได้ โดยวิดเจ็ตจะปรากฏตามลำดับที่ระบุไว้
หากต้องการรวมคอลัมน์มากกว่า 2 คอลัมน์หรือใช้แถว ให้ใช้วิดเจ็ต grid
ความสูงของแต่ละคอลัมน์จะกำหนดโดยคอลัมน์ที่สูงกว่า เช่น หากคอลัมน์แรกสูงกว่าคอลัมน์ที่ 2 ทั้ง 2 คอลัมน์จะมีความสูงเท่ากับคอลัมน์แรก เนื่องจากแต่ละคอลัมน์มีจำนวนวิดเจ็ตที่แตกต่างกันได้ คุณจึงกำหนดแถวหรือจัดแนววิดเจ็ตระหว่างคอลัมน์ไม่ได้
ตัวอย่างต่อไปนี้แสดงการ์ดที่มีวิดเจ็ต columns ซึ่งมีข้อความ 2 คอลัมน์ หากต้องการดูเฉพาะเลย์เอาต์คอลัมน์และยุบตัวอย่างโค้ด ให้คลิก ยุบ
เมื่อพื้นที่จำกัด เช่น ในตัวอย่างต่อไปนี้ คอลัมน์ที่ 2 จะตัดขึ้นบรรทัดใหม่ใต้คอลัมน์แรก
กำหนดความกว้างของคอลัมน์
คอลัมน์จะแสดงเคียงข้างกัน คุณปรับแต่งความกว้างของแต่ละคอลัมน์ได้โดยใช้ช่อง horizontalSizeStyle
หากหน้าจอของผู้ใช้แคบเกินไป คอลัมน์ที่ 2 จะตัดไปอยู่ใต้คอลัมน์แรก ดังนี้
- ในเว็บ คอลัมน์ที่ 2 จะตัดขึ้นบรรทัดใหม่หากความกว้างของหน้าจอน้อยกว่าหรือเท่ากับ 480 พิกเซล
- ในอุปกรณ์ iOS คอลัมน์ที่ 2 จะตัดขึ้นบรรทัดใหม่หากความกว้างของหน้าจอน้อยกว่าหรือเท่ากับ 300 pt
- ในอุปกรณ์ Android คอลัมน์ที่ 2 จะตัดขึ้นบรรทัดใหม่หากความกว้างของหน้าจอน้อยกว่าหรือเท่ากับ 320 dp
ตัวอย่างต่อไปนี้แสดงการ์ดที่มีวิดเจ็ต columns ซึ่งมีข้อความ 2 คอลัมน์และมี 4 รายการในคอลัมน์ แต่ละรายการในคอลัมน์มี horizontalSizeStyle ที่ใช้เพื่อจัดการพื้นที่ที่ข้อความจะเติมในแต่ละคอลัมน์
- ย่อหน้าข้อความแรกใช้
FILL_MINIMUM_SPACEเพื่อเติมไม่เกิน 30% ของความกว้างของการ์ด - ย่อหน้าข้อความที่ 2 ใช้
FILL_AVAILABLE_SPACEเพื่อเติมพื้นที่ว่างในความกว้างของการ์ด ในตัวอย่างนี้ แถบจะมีความยาว 70% ของความกว้างการ์ด - ย่อหน้าข้อความที่ 3 ไม่ได้กำหนด
horizontalSizeStyleดังนั้นจึงใช้ค่าเริ่มต้นเพื่อเติมพื้นที่ว่างของพื้นที่การ์ด - ย่อหน้าข้อความที่ 4 ใช้
FILL_MINIMUM_SPACEเพื่อเติมไม่เกิน 30% ของความกว้างของการ์ด
กำหนดการจัดแนวคอลัมน์ในแนวนอน
คุณสามารถจัดแนววิดเจ็ตในแนวนอนไปทางซ้าย ขวา หรือกึ่งกลางของคอลัมน์ได้โดยกำหนดช่อง horizontalAlignment
หากไม่ได้กำหนดช่อง horizontalAlignment วิดเจ็ตจะจัดชิดซ้ายในคอลัมน์
ตัวอย่างต่อไปนี้จะจัดข้อความภายในคอลัมน์ให้อยู่ทางด้านซ้ายในแนวนอน
ตัวอย่างต่อไปนี้จะจัดข้อความภายในคอลัมน์ให้อยู่ตรงกลางในแนวนอน
ตัวอย่างต่อไปนี้จะจัดข้อความภายในคอลัมน์ไปทางขวาในแนวนอน
กำหนดการจัดแนวคอลัมน์ในแนวตั้ง
คุณสามารถจัดแนววิดเจ็ตในแนวตั้งให้อยู่ด้านบน ด้านล่าง หรือตรงกลางของคอลัมน์ได้โดยกำหนดช่อง verticalAlignment
หากไม่ได้กำหนดช่อง verticalAlignment วิดเจ็ตในคอลัมน์จะจัดชิดด้านบน
ตัวอย่างต่อไปนี้จะจัดข้อความภายในคอลัมน์ให้อยู่ด้านบนในแนวตั้ง
ตัวอย่างต่อไปนี้จะจัดข้อความในแนวตั้งภายในคอลัมน์ให้อยู่ตรงกลาง
ตัวอย่างต่อไปนี้จะจัดข้อความในแนวตั้งภายในคอลัมน์ที่ด้านล่าง
เพิ่มตารางกริดเพื่อแสดงคอลเล็กชันของรายการ
วิดเจ็ต grid จะแสดงตารางกริดที่มีคอลเล็กชันของรายการต่างๆ ตารางกริดรองรับคอลัมน์และรายการจำนวนเท่าใดก็ได้ จำนวนแถวจะกำหนดโดยจำนวนรายการหารด้วยจำนวนคอลัมน์
ตารางกริดที่มี 10 รายการและ 2 คอลัมน์จะมี 5 แถว ตารางกริดที่มี 11 รายการและ 2 คอลัมน์จะมี 6 แถว
วิดเจ็ตนี้รองรับคำแนะนำ ซึ่งช่วยให้ผู้ใช้ป้อนข้อมูลที่สอดคล้องกัน และการดำเนินการเมื่อมีการเปลี่ยนแปลง ซึ่งก็คือ Actions ที่จะทำงานเมื่อมีการเปลี่ยนแปลงในช่องป้อนข้อความ เช่น ผู้ใช้เพิ่มหรือลบข้อความ
ตัวอย่างต่อไปนี้คือตารางกริด 2 คอลัมน์ที่มีรายการเดียว
หากต้องการกำหนดตำแหน่งที่ข้อความจะปรากฏพร้อมรูปภาพในตารางกริด คุณสามารถระบุช่อง gridItemLayout ได้
ช่องนี้ช่วยให้คุณกำหนดได้ว่าข้อความจะปรากฏด้านบนหรือด้านล่างของรายการในตารางกริด หากไม่ได้กำหนด gridItemLayout ไว้ ข้อความจะปรากฏใต้รายการในตารางกริดโดยค่าเริ่มต้น
ตัวอย่างต่อไปนี้เป็นตารางกริด 3 คอลัมน์ที่มีข้อความและรูปภาพในแต่ละกริด ตารางกริดแรกกำหนดข้อความที่จะปรากฏเหนือรูปภาพ ตารางกริดที่ 2 กำหนดข้อความที่จะปรากฏใต้รูปภาพ และตารางกริดที่ 3 ไม่ได้กำหนดตำแหน่งของข้อความ
เพิ่มเส้นขอบให้กับตารางกริดหรือคอลัมน์
สำหรับรายการที่ปรากฏในวิดเจ็ต column หรือ grid คุณสามารถเพิ่มเส้นขอบให้กับองค์ประกอบ UI เหล่านี้ได้โดยกำหนดช่อง borderType และช่อง borderStyle
หากไม่ได้กำหนดช่อง borderStyle ไว้ ระบบจะแสดงผลโดยไม่มีเส้นขอบเป็นค่าเริ่มต้น คุณสามารถกำหนด borderType เพื่อใช้กับรายการทั้งหมดภายในวิดเจ็ต หรือใช้การจัดรูปแบบกับแต่ละรายการภายในวิดเจ็ต
ตัวอย่างต่อไปนี้คือตารางกริด 2 คอลัมน์ที่มีรูปภาพในแต่ละตารางกริด โดยมีการกำหนดประเภท เส้นขอบ และสีให้ใช้กับรายการทั้งหมดภายในตารางกริด
ตัวอย่างต่อไปนี้เป็นตารางกริด 3 คอลัมน์ที่มีรูปภาพในแต่ละกริด และมีการกำหนดสไตล์และประเภทเส้นขอบแยกกัน รูปภาพแรกมีขอบที่กำหนดเป็น STROKE รูปภาพที่ 2 มีเส้นขอบที่กำหนดเป็น NO_BORDER รูปภาพที่ 3 ไม่มีเส้นขอบที่กำหนดไว้
เพิ่มภาพสไลด์
วิดเจ็ต Carousel จะแสดงคอลเล็กชันของออบเจ็กต์ CarouselCard ที่เลื่อนเข้าและออกจากหน้าจอได้ คุณเพิ่มวิดเจ็ตได้หลายรายการในแต่ละCarouselCard
เพิ่มส่วนท้ายแบบถาวร
วิดเจ็ต CardFixedFooter แสดงส่วนท้ายของข้อความในกล่องโต้ตอบที่แอปใน Chat ส่ง ส่วนท้ายอาจมีปุ่มหลักและปุ่มรอง
วิดเจ็ต CardFixedFooter ใช้ได้กับกล่องโต้ตอบเท่านั้น
ต่อไปนี้เป็นตัวอย่างวิดเจ็ต CardFixedFooter ที่มี 2 ปุ่ม
แก้ปัญหา
เมื่อแอป Google Chat หรือการ์ดแสดงข้อผิดพลาด อินเทอร์เฟซของ Chat จะแสดงข้อความว่า "เกิดข้อผิดพลาด" หรือ "ดำเนินการตามคำขอของคุณไม่ได้" บางครั้ง UI ของ Chat ไม่แสดงข้อความแสดงข้อผิดพลาด แต่แอปใน Chat หรือการ์ดแสดงผลลัพธ์ที่ไม่คาดคิด เช่น ข้อความการ์ดอาจไม่ปรากฏ
แม้ว่าข้อความแสดงข้อผิดพลาดอาจไม่แสดงใน UI ของ Chat แต่ข้อความแสดงข้อผิดพลาดที่สื่อความหมายและข้อมูลบันทึกจะพร้อมใช้งานเพื่อช่วยคุณแก้ไขข้อผิดพลาดเมื่อเปิดการบันทึกข้อผิดพลาดสำหรับแอปใน Chat หากต้องการความช่วยเหลือในการดู แก้ไขข้อบกพร่อง และแก้ไขข้อผิดพลาด โปรดดูหัวข้อแก้ปัญหาและแก้ไขข้อผิดพลาดของ Google Chat