Android TextView में राइट अलाइन टेक्स्ट


215

मेरे पास TextViewमेरे आवेदन में एक है। मैं इसमें पाठ को दाईं ओर संरेखित करना चाहता हूं। मैंने जोड़ने की कोशिश की:

android:gravity="right"

लेकिन यह मेरे लिए काम नहीं करता है।

मैं क्या गलत कर सकता हूं?

जवाबों:


193

मुझे लगता है कि आप ऐसा कर रहे हैं: android:layout_width = "wrap_content"
यदि यह मामला है, तो यह करें:android:layout_width = "match_parent"


2
@ बिसन फिल में शेष बची जगह भरेगी, मैच इसे माता
ट्रॉय कोसेंटीनो

11
दरअसल, fill_parent और match_parent एक ही चीज हैं। नाम को मैच_परेंट में बदल दिया गया क्योंकि जाहिरा तौर पर फिल_परेंट लोगों को भ्रमित कर रहा था।
एडवर्ड फॉक

158

सामान्य तौर पर, इससे android:gravity="right"भिन्न होता है android:layout_gravity="right"

पहले वाला दृश्य के भीतर ही पाठ की स्थिति को प्रभावित करता है, इसलिए यदि आप चाहते हैं कि यह सही-संरेखित हो, layout_width=तो "fill_parent"या तो होना चाहिए या "match_parent"

दूसरा व्यक्ति अपने माता-पिता के अंदर दृश्य की स्थिति को प्रभावित करता है, दूसरे शब्दों में - माता-पिता के दृश्य के अंदर ही वस्तु (संपादित बॉक्स या पाठ दृश्य) को संरेखित करना।


83

बेहतर समाधान वह है जो सबसे सरल है, और वह जो आपके कोड व्यवहार में कम संशोधन करता है

क्या होगा यदि आप इस समस्या को केवल 2 गुणों के साथ अपने पर हल कर सकते हैं TextView?

अपने LinearLayoutगुणों को बदलने की आवश्यकता के बजाय जो शायद LinearLayoutबच्चों के व्यवहार को बदल सकते हैं ?

इस तरह से, आपको LinearLayoutगुणों और व्यवहार को बदलने की आवश्यकता नहीं है, आपको केवल निम्नलिखित दो गुणों को अपने लक्ष्य में जोड़ने की आवश्यकता है TextView:

android:gravity="right"
android:textAlignment="gravity"

भविष्य में एक और समस्या का कारण बनने के बजाय अपने समाधान को हल करने के लिए अपने लक्ष्य को बदलने के लिए बेहतर क्या होगा, अपने लक्ष्य पिता को संशोधित करना? इसके बारे में सोचो :)


मुझे एक त्रुटि मिलती है जो कहती है कि पैकेज android में संसाधन 'textAlignment' के लिए कोई संसाधन पहचानकर्ता नहीं मिला।
अनु

आपको यकीन है कि आप एक TextViewगुण स्वीकार कर रहे हैं? - आप यहां संदर्भ से संपत्ति की जांच कर सकते हैं: developer.android.com/reference/android/view/…
पाउलो रॉबर्टो रोजा

4
textAlignment एपीआई स्तर 17 (एंड्रॉइड 4.2) में जोड़ा गया था। इस काम के लिए आपके एमुलेटर / डिवाइस को 4.2+ चलाना होगा।
तेनात

मैंने एंड्रॉइड 4.1.2 में इस textAlignment प्रॉपर्टी का उपयोग करने की कोशिश की है और त्रुटि "कोई संसाधन पहचानकर्ता नहीं मिला है जो कि 'textAlignment' के लिए मिला है।" मुझे इस त्रुटि का उत्तर यहां stackoverflow.com/a/20176191/723507 पर मिला । आप इसे 4.0.3 में कैसे उपयोग कर सकते हैं?
तेनात

20

android:layout_gravityमूल लेआउट के संबंध में पाठ दृश्य को संरेखित करने के लिए उपयोग किया जाता है। android:gravityपाठ दृश्य के अंदर पाठ संरेखित करने के लिए उपयोग किया जाता है।

क्या आप सुनिश्चित हैं कि आप टेक्स्ट दृश्य के अंदर पाठ को दाईं ओर संरेखित करने का प्रयास कर रहे हैं या क्या आप मूल लेआउट के संबंध में पाठ दृश्य को दाईं ओर ले जाना चाहते हैं या आप दोनों को प्राप्त करने का प्रयास कर रहे हैं


मैं पाठ दृश्य के अंदर पाठ को दाईं ओर संरेखित करने की कोशिश कर रहा हूं
बिशन

11

निम्नलिखित कोड स्निपेट:

android:textAlignment="textEnd"
android:layout_gravity="end"

मेरे लिए बहुत अच्छा काम करता है



8

सुनिश्चित करें कि आप उपयोग नहीं कर रहे हैं android:layout_width="wrap_content"यदि ऐसा है तो यह गुरुत्वाकर्षण सेट करने में सक्षम नहीं होगा क्योंकि आपके पास पाठ को संरेखित करने के लिए पर्याप्त स्थान नहीं है। इसके बजाय उपयोग करेंandroid:layout_width="fill_parent"


7
android:gravity="right"

यह मूल रूप से रैखिक लेआउट में उपयोग किया जाता है ताकि आपको अपने टेक्स्ट व्यू की चौड़ाई या एडिट टेक्स्ट के रूप में सेट करना पड़े

android:layout_width = "match_parent"

तथा

जब आप रिलेटिव लेआउट में काम कर रहे हों, तब उपयोग करें

android:layout_alignParentRight="true"


5

यदि यह RelativeLayoutआप में है तो उपयोग कर सकते हैंandroid:layout_toRightOf="@id/<id_of_desired_item>"

या

यदि आप rightडिवाइस के कोने में जगह के लिए संरेखित करना चाहते हैंandroid:layout_alignParentRight="true"


4

WEB का उपयोग करके मुझे गुरुत्वाकर्षण अवधारणा की व्याख्या करने दें क्योंकि बहुत सारे डेवलपर इसके बारे में जानते हैं।

android_layout_gravity बर्ताव करती है float:left|right|top|bottom

जबकि android_gravityकाम करते हैंtext_align:centre|left|right

Android फ़्लोट में android_layout_gravity और text_align: android_gravity है।

और android_layout_gravity माता-पिता के सापेक्ष लागू होती है। जहाँ android_gravity अपने बच्चे या आंतरिक सामग्री पर लागू होती है।

नोट android_gravity तभी काम करती है जब उसका View match_parent हो (जब उसमें केंद्र की जगह हो)।


3

नीचे मेरे लिए काम करता है:

<TextView
    android:id="@+id/tv_username"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Sarah" />

<TextView
    android:id="@+id/tv_distance"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignBottom="@+id/tv_username"
    android:layout_alignParentEnd="true"
    android:layout_toEndOf="@+id/tv_username"
    android:text="San Marco"
    android:textAlignment="viewEnd" />

कृपया ध्यान दें android:layout_alignParentEndऔर android:textAlignmentदूसरे TextView की सेटिंग्स।




2

मेरे मामले में, मैं Relative Layoutएक के लिए उपयोग कर रहा थाemptyString

एक घंटे तक इस पर संघर्ष करने के बाद। केवल इसने मेरे लिए काम किया:

android:layout_toRightOf="@id/welcome"
android:layout_toEndOf="@id/welcome"
android:layout_alignBaseline="@id/welcome"

layout_toRightOfया layout_toEndOfदोनों काम करता है, लेकिन इसे बेहतर समर्थन देने के लिए, मैंने दोनों का उपयोग किया।

इसे और अधिक स्पष्ट करने के लिए:

यह वही था जो मैं करने की कोशिश कर रहा था:

यहां छवि विवरण दर्ज करें

और यह एमुलेटर का आउटपुट था

यहां छवि विवरण दर्ज करें

लेआउट:

<TextView
    android:id="@+id/welcome"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginStart="16dp"
    android:layout_marginTop="16dp"
    android:text="Welcome "
    android:textSize="16sp" />
<TextView
    android:id="@+id/username"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignBaseline="@id/welcome"
    android:layout_toRightOf="@id/welcome"
    android:text="@string/emptyString"
    android:textSize="16sp" />

नोटिस जो:

  1. android:layout_width="wrap_content" काम करता है
  2. Gravity उपयोग नहीं होता है

1

मुझे भी उसी समस्या का सामना करना पड़ा और लगा कि यह समस्या हो रही है क्योंकि TextView का लेआउट_ एक्सपोज़र wra_content हो रहा था। आपको match_parent और android: गुरुत्वाकर्षण = "गुरुत्व" के रूप में लेआउट_ एक्सपोज़र की आवश्यकता है


1
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
     android:layout_width="fill_parent"
     android:layout_height="fill_parent">

  <TextView
    android:id="@+id/tct_postpone_hour"
    android:layout_width="match_parent"
    android:layout_height="50dp"
    android:layout_centerHorizontal="true"
    android:layout_centerVertical="true"
    android:layout_gravity="center"
    android:gravity="center_vertical|center_horizontal"
    android:text="1"
    android:textSize="24dp" />
</RelativeLayout>

क्षैतिज और ऊर्ध्वाधर दोनों केंद्रों में नंबर एक संरेखित करता है।



0

मैंने अपने मामले में "लेआउट_अलिग्नाइट" विशेषता का उपयोग किया है, इसके पाठ में:

android:layout_alignRight="@+id/myComponentId"

यदि आप कुछ सही मार्जिन जोड़ना चाहते हैं, तो बस इसके लिए टेक्स्ट में, उदाहरण के लिए "Layout_Margin Right" को "20dp" के लिए सेट करें:

android:layout_marginRight="20dp"
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.