Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Android

วิธีเพิ่ม Line Break (ขึ้นบรรทัดใหม่) ใน TextView Android ด้วย Kotlin

ตัวอย่างนี้สาธิตวิธี เพิ่มการขึ้นบรรทัดใหม่ (Line Break) ใน TextView ทั้งใน XML String Resource และโค้ด Kotlin

ขั้นตอนที่ 1: สร้างโปรเจกต์ใหม่

Android Studio → New Project → Empty Activity

ขั้นตอนที่ 2: Layout (activity_main.xml)

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="https://schemas.android.com/apk/res/android"
    xmlns:tools="https://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:padding="24dp"
    tools:context=".MainActivity">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_marginBottom="24dp"
        android:text="Line Break Demo"
        android:textColor="@android:color/holo_green_dark"
        android:textSize="24sp"
        android:textStyle="bold" />

    <TextView
        android:id="@+id/tvMultiline"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"
        android:text="@string/multiline_text"
        android:textColor="@android:color/black"
        android:textSize="18sp" />

</RelativeLayout>

ขั้นตอนที่ 3: String Resource (res/values/strings.xml)

<resources>
    <string name="app_name">LineBreakDemo</string>

    <!-- ใช้ \n สำหรับ Line Break ใน XML -->
    <string name="multiline_text">Line 1: First line\nLine 2: Second line\nLine 3: Third line</string>

    <!-- หรือใช้ <br/> (ต้องใช้ HTML.fromHtml) -->
    <string name="html_multiline">Line 1: First line<br/>Line 2: Second line<br/>Line 3: Third line</string>
</resources>

ขั้นตอนที่ 4: โค้ดหลัก (MainActivity.kt)

import android.os.Bundle
import android.text.Html
import android.widget.TextView
import androidx.appcompat.app.AppCompatActivity

class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        title = "Line Break Demo"

        val tvMultiline = findViewById(R.id.tvMultiline)

        // 🔑 วิธีที่ 1: ใช้ \n ใน Code (แนะนำ)
        tvMultiline.text = "Line 1: First line\nLine 2: Second line\nLine 3: Third line"

        // 🔑 วิธีที่ 2: ใช้ String Resource ที่มี \n (XML ด้านบน)
        // tvMultiline.text = getString(R.string.multiline_text)

        // 🔑 วิธีที่ 3: ใช้ HTML 
(ต้อง parse) // val htmlText = getString(R.string.html_multiline) // tvMultiline.text = Html.fromHtml(htmlText, Html.FROM_HTML_MODE_LEGACY) // 🔑 วิธีที่ 4: StringBuilder สำหรับ Dynamic val lines = listOf("Apple", "Banana", "Cherry", "Durian") val dynamicText = lines.joinToString("\n") { "Fruit: $it" } // tvMultiline.text = dynamicText } }

📋 สรุปวิธีต่างๆ

วิธี Syntax ใช้ใน หมายเหตุ
Escape Sequence \n Kotlin Code, XML String ✅ เร็วที่สุด แนะนำมากที่สุด
HTML Tag <br/> XML String + Html.fromHtml() รองรับ Bold, Italic, Color ได้
Paragraph \n\n Kotlin Code เว้นบรรทัดว่าง (Paragraph break)
StringBuilder joinToString("\n") Dynamic List สร้างจาก List/Array

🎨 HTML Tags ที่รองรับใน TextView

val html = """
    <b>Bold</b> <i>Italic</i> <u>Underline</u>
    <br/>
    <font color="#FF0000">Red Text</font>
    <big>Big</big> <small>Small</small>
"""
tv.text = Html.fromHtml(html, Html.FROM_HTML_MODE_LEGACY)

ขั้นตอนที่ 5: AndroidManifest.xml

Manifest มาตรฐาน

ทดสอบ

  1. รันแอป → TextView แสดง 3 บรรทัด คั่นด้วย \n
  2. ลอง Comment/Uncomment วิธีต่างๆ ในโค้ด
  3. สังเกต: \n ทำงานได้ทุกที่,
    ต้องใช้ Html.fromHtml()