จัด text center กับ android


150

ฉันรู้ว่ามันฟังดูง่าย ฉันต้องวางข้อความไว้ที่กึ่งกลาง แต่เมื่อข้อความยาวเกินไปก็ต้องลงไปด้านล่าง แต่ยังคงอยู่ในแนวกึ่งกลางของ xml ของฉัน

นี่คือรหัสของฉัน:

 <LinearLayout
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/showdescriptioncontenttitle"
    android:paddingTop="10dp"
    android:paddingBottom="10dp"
    android:layout_centerHorizontal="true"
>
    <TextView 
        android:id="@+id/showdescriptiontitle"
        android:text="Title"
        android:textSize="35dp"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
    />
</LinearLayout>

ฉันใส่ paddingTop และ Bottom เพราะฉันต้องการที่ว่าง PS: รหัสของฉันใหญ่กว่า มันอยู่ใน RelativeLayout


ที่นี่คุณไม่ได้ใช้รูปแบบข้อความใด ๆ
Dinith

คำตอบ:


381

ตั้งยังandroid:gravityพารามิเตอร์ในการTextViewcenter

สำหรับการทดสอบเอฟเฟ็กต์ของพารามิเตอร์เลย์เอาต์ที่แตกต่างกันฉันแนะนำให้ใช้สีพื้นหลังที่แตกต่างกันสำหรับทุกองค์ประกอบดังนั้นคุณสามารถดูว่าเลย์เอาต์ของคุณเปลี่ยนแปลงอย่างไรด้วยพารามิเตอร์เช่นแรงโน้มถ่วง, layout_gravity หรืออื่น ๆ


ขอบคุณมันใช้งานได้ต้องใช้เวลาสักครู่เพื่อยืนยันคำตอบของคุณ!
สึนาซะ

ใช่มันเป็นเรื่องจริง แต่ฉันคิดว่าเฉพาะเมื่อ TextView มีมากกว่าหนึ่งบรรทัด เนื่องจากมีเพียงข้อความไม่เต็มบรรทัด TextView จะไม่เติมเค้าโครงตามแนวนอน
peter.bartos

คุณสามารถหลีกเลี่ยงสิ่งนี้ได้โดยการตั้งค่า android ของ TextView: layout_width = "fill_parent"
peter.bartos

2
android:layout_gravityเพื่อไม่ให้สับสนกับ Doh! :)
Joshua Pinter


21

ใช้วิธีนี้ใน xml

   <TextView
        android:id="@+id/myText"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Time is precious, so love now."
        android:gravity="center"
        android:textSize="30dp"
        android:textColor="#fff"
        />

7

คุณสามารถใช้สิ่งต่อไปนี้:

<LinearLayout
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/showdescriptioncontenttitle"
    android:paddingTop="10dp"
    android:paddingBottom="10dp">

 <TextView
        android:id="@+id/textview1"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:text="Your text"
        android:typeface="serif" />
</LinearLayout>

โครงร่างต้องสัมพันธ์กับคุณสมบัติ "ศูนย์" ที่จะใช้


5

การเพิ่มandroid:gravity="center"TextView ของคุณจะทำให้เคล็ดลับ (เป็นเลย์เอาต์หลักRelative/Linear)

นอกจากนี้คุณควรหลีกเลี่ยงการใช้ dp สำหรับขนาดตัวอักษร ใช้ sp แทน


3

เพิ่ม layout_gravity และแรงโน้มถ่วงด้วยค่ากลางของ TextView

<TextView
    android:text="welcome text"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_gravity="center"
    android:gravity="center"
    />


โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.