जवाबों:
मुझे लगता है कि आप ऐसा कर रहे हैं: android:layout_width = "wrap_content"
यदि यह मामला है, तो यह करें:android:layout_width = "match_parent"
सामान्य तौर पर, इससे android:gravity="right"
भिन्न होता है android:layout_gravity="right"
।
पहले वाला दृश्य के भीतर ही पाठ की स्थिति को प्रभावित करता है, इसलिए यदि आप चाहते हैं कि यह सही-संरेखित हो, layout_width=
तो "fill_parent"
या तो होना चाहिए या "match_parent"
।
दूसरा व्यक्ति अपने माता-पिता के अंदर दृश्य की स्थिति को प्रभावित करता है, दूसरे शब्दों में - माता-पिता के दृश्य के अंदर ही वस्तु (संपादित बॉक्स या पाठ दृश्य) को संरेखित करना।
बेहतर समाधान वह है जो सबसे सरल है, और वह जो आपके कोड व्यवहार में कम संशोधन करता है ।
क्या होगा यदि आप इस समस्या को केवल 2 गुणों के साथ अपने पर हल कर सकते हैं TextView
?
अपने LinearLayout
गुणों को बदलने की आवश्यकता के बजाय जो शायद LinearLayout
बच्चों के व्यवहार को बदल सकते हैं ?
इस तरह से, आपको LinearLayout
गुणों और व्यवहार को बदलने की आवश्यकता नहीं है, आपको केवल निम्नलिखित दो गुणों को अपने लक्ष्य में जोड़ने की आवश्यकता है TextView
:
android:gravity="right"
android:textAlignment="gravity"
भविष्य में एक और समस्या का कारण बनने के बजाय अपने समाधान को हल करने के लिए अपने लक्ष्य को बदलने के लिए बेहतर क्या होगा, अपने लक्ष्य पिता को संशोधित करना? इसके बारे में सोचो :)
TextView
गुण स्वीकार कर रहे हैं? - आप यहां संदर्भ से संपत्ति की जांच कर सकते हैं: developer.android.com/reference/android/view/…
android:layout_gravity
मूल लेआउट के संबंध में पाठ दृश्य को संरेखित करने के लिए उपयोग किया जाता है।
android:gravity
पाठ दृश्य के अंदर पाठ संरेखित करने के लिए उपयोग किया जाता है।
क्या आप सुनिश्चित हैं कि आप टेक्स्ट दृश्य के अंदर पाठ को दाईं ओर संरेखित करने का प्रयास कर रहे हैं या क्या आप मूल लेआउट के संबंध में पाठ दृश्य को दाईं ओर ले जाना चाहते हैं या आप दोनों को प्राप्त करने का प्रयास कर रहे हैं
सुनिश्चित करें कि आप उपयोग नहीं कर रहे हैं android:layout_width="wrap_content"
यदि ऐसा है तो यह गुरुत्वाकर्षण सेट करने में सक्षम नहीं होगा क्योंकि आपके पास पाठ को संरेखित करने के लिए पर्याप्त स्थान नहीं है। इसके बजाय उपयोग करेंandroid:layout_width="fill_parent"
android:gravity="right"
यह मूल रूप से रैखिक लेआउट में उपयोग किया जाता है ताकि आपको अपने टेक्स्ट व्यू की चौड़ाई या एडिट टेक्स्ट के रूप में सेट करना पड़े
android:layout_width = "match_parent"
तथा
जब आप रिलेटिव लेआउट में काम कर रहे हों, तब उपयोग करें
android:layout_alignParentRight="true"
(LinearLayout) android:layout_width="match_parent"
और TextView बनाएंandroid:layout_gravity="right"
यदि यह RelativeLayout
आप में है तो उपयोग कर सकते हैंandroid:layout_toRightOf="@id/<id_of_desired_item>"
या
यदि आप right
डिवाइस के कोने में जगह के लिए संरेखित करना चाहते हैंandroid:layout_alignParentRight="true"
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 हो (जब उसमें केंद्र की जगह हो)।
नीचे मेरे लिए काम करता है:
<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 की सेटिंग्स।
इस उद्देश्य को पूरा करना चाहिए
android:textAlignment="textStart"
मेरे मामले में, मैं 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" />
नोटिस जो:
android:layout_width="wrap_content"
काम करता हैGravity
उपयोग नहीं होता है<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>
क्षैतिज और ऊर्ध्वाधर दोनों केंद्रों में नंबर एक संरेखित करता है।
android:gravity="center"
में जोड़ने का प्रयास करेंTextView
मैंने अपने मामले में "लेआउट_अलिग्नाइट" विशेषता का उपयोग किया है, इसके पाठ में:
android:layout_alignRight="@+id/myComponentId"
यदि आप कुछ सही मार्जिन जोड़ना चाहते हैं, तो बस इसके लिए टेक्स्ट में, उदाहरण के लिए "Layout_Margin Right" को "20dp" के लिए सेट करें:
android:layout_marginRight="20dp"