Android คืออะไร: supportsRtl =“ true” ในไฟล์ xml ของ AndroidManifest


90

เมื่อใดก็ตามที่ฉันสร้างโปรเจ็กต์ใหม่ในสตูดิโอ Android ฉันได้รับandroid:supportsRtl="true"แอพ AndroidManifest File

<application
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:supportsRtl="true"
    android:theme="@style/AppTheme">
...
</application>

การใช้งานในแอปคืออะไรหรือข้อดีและข้อเสียคืออะไรเมื่อฉันเพิ่มหรือไม่เพิ่มในแอป AndroidManifest


5
ฉันไม่รู้สึกว่านี่เป็นคำถามที่ซ้ำกัน ทั้งสองอย่างเกี่ยวกับ RTL แต่ผู้ที่ค้นหาสิ่งเหล่านี้จะเลื่อนออกไป
SREE

2
คำถามที่อ้างถึงว่าซ้ำกันนั้นไม่ถูกต้อง บริบทที่แตกต่างกันโดยสิ้นเชิงสำหรับผู้ใช้ที่ค้นหาคำถาม
Jaydev

คำตอบ:


85

ประกาศว่าแอปพลิเคชันของคุณยินดีที่จะสนับสนุนรูปแบบจากขวาไปซ้าย (RTL) หรือไม่ หากตั้งค่าเป็น true และ targetSdkVersion ตั้งไว้ที่ 17 หรือสูงกว่าระบบจะเปิดใช้งานและใช้ RTL API ต่างๆเพื่อให้แอปของคุณแสดงเค้าโครง RTL ได้ หากตั้งค่าเป็นเท็จหรือหากตั้งค่า targetSdkVersion เป็น 16 หรือต่ำกว่า RTL API จะถูกละเว้นหรือไม่มีผลใด ๆ และแอปของคุณจะทำงานเหมือนเดิมไม่ว่าทิศทางการจัดวางที่เกี่ยวข้องกับตัวเลือกสถานที่ตั้งของผู้ใช้จะเป็นอย่างไร (เค้าโครงของคุณจะถูกทิ้งไว้เสมอ - ไปทางขวา)

ค่าเริ่มต้นของแอตทริบิวต์นี้เป็นเท็จ

แอตทริบิวต์นี้ถูกเพิ่มใน API ระดับ 17

(ที่มา: http://developer.android.com/guide/topics/manifest/application-element.html )


73

ถ้าคุณกำลังสร้างแอปในภาษาอาหรับภาษาอูรดู, ฮิบรู ฯลฯ ... หรือภาษาใด ๆ ที่เขียนจากขวาไปซ้ายคุณควรตั้งค่าandroid:supportsRtlการtrueว่าเป็นวิธีที่คุณบอกรูปแบบที่จะเป็นจากขวาไปซ้ายและค่าเริ่มต้นของ แอตทริบิวต์นี้เป็นเท็จ


14
ดีกว่าเอกสารของ Google
CopsOnRoad

1
ขอบคุณสำหรับคำตอบอื่น ๆ แต่การตอบกลับแบบนี้มีประโยชน์มากกว่าและทำเอกสารให้ครบถ้วน ขอบคุณ @Sarah.
Nicoolasens

สวัสดีแอปของฉันไม่รองรับภาษาอาหรับ แต่ฉันใช้ android: supportsRtl = "true" ใน manifest.xml มีปัญหานี้หรือไม่
ozanurkan

3
@ozanurkan - ไม่ใช่ปัญหา คำตอบนี้ไม่ถูกต้อง / ทำให้เข้าใจผิด android:supportsRtl="true"เปิดใช้งานการสนับสนุนภาษาจากขวาไปซ้าย หากไม่มีสิ่งนี้เลย์เอาต์จะเป็นแบบซ้ายไปขวาเสมออย่างไรก็ตามโดยตัวมันเองจะไม่เปลี่ยนเลย์เอาต์จากขวาไปซ้าย เพียงแค่เปิดใช้งานแอตทริบิวต์อื่น ๆ - หนึ่งในแอตทริบิวต์ใหม่เหล่านั้นควบคุมว่าจะเป็นแบบซ้ายไปขวาหรือขวาไปซ้าย
ช่างทำเครื่องมือสตีฟ

10

จาก Android API-Guides:

(developer.android.com/guide/topics/manifest/application-element.html)

ประกาศว่าแอปพลิเคชันของคุณยินดีที่จะสนับสนุนรูปแบบจากขวาไปซ้าย (RTL) หรือไม่

หากตั้งค่าเป็น true และ targetSdkVersion ตั้งไว้ที่ 17 หรือสูงกว่าระบบจะเปิดใช้งานและใช้ RTL API ต่างๆเพื่อให้แอปของคุณแสดงเค้าโครง RTL ได้ หากตั้งค่าเป็นเท็จหรือหากตั้งค่า targetSdkVersion เป็น 16 หรือต่ำกว่า RTL API จะถูกละเว้นหรือไม่มีผลใด ๆ และแอปของคุณจะทำงานเหมือนเดิมไม่ว่าทิศทางการจัดวางที่เกี่ยวข้องกับตัวเลือกสถานที่ตั้งของผู้ใช้จะเป็นอย่างไร (เค้าโครงของคุณจะถูกทิ้งไว้เสมอ - ไปทางขวา)

ค่าเริ่มต้นของแอตทริบิวต์นี้เป็นเท็จ

แอตทริบิวต์นี้ถูกเพิ่มใน API ระดับ 17

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