2012-12-19 19 views
6

में लंबवत रूप से दो टेक्स्ट व्यू को कैसे केंद्रित कर सकता हूं मेरे पास RelativeLayout है (कि मेरी शादी नहीं हुई है) और दो TextView एस है। मैं अपने माता-पिता के केंद्र के साथ लाइन करने के लिए पहले TextView के नीचे और दूसरे के TextView के शीर्ष के साथ अपने माता-पिता के केंद्र के साथ लाइन करना चाहता हूं।मैं लेआउट

enter image description here

मैं माता पिता की (ऊर्ध्वाधर) केंद्र में ऊपर चित्र में एक हरे रंग की लाइन डाल दिया। TextView एस वर्तमान में बिल्कुल सही जगह पर हैं, लेकिन मैंने ऐसा किया क्योंकि मैं नीचे मार्जिन के साथ वर्णन करता हूं और उन्हें माता-पिता के साथ संरेखित करता हूं और माता-पिता के आकार को जानता हूं।

विभिन्न कारणों से मैं केवल एक TextView का उपयोग नहीं कर सकता और इसे केंद्र में नहीं रख सकता। इसके अलावा मुझे माता-पिता की ऊंचाई नहीं पता है, इसलिए मैं प्रत्येक को माता-पिता के ऊपर/नीचे संरेखित नहीं कर सकता हूं और उन्हें केंद्र में नीचे/नीचे मार्जिन कर सकता हूं।

मैंने एक और View रखने की कोशिश की जो आधा ऊंचाई लेता है और invisible हो सकता है, लेकिन layout_height पर्सेंट नहीं लेता है (या कम से कम यह मुझे त्रुटियां देता है)।

कोई विचार मैं इसे कैसे पूरा कर सकता हूं?

क्या मुझे बस दो TextView एस को दूसरे लेआउट के अंदर रखना चाहिए और वह केंद्र स्वयं ही है?

+0

https://stackoverflow.com/questions/22161456/vertically-centering-two-textviews-in-a-relativelayout/48880191#48880191 – blackHawk

उत्तर

19

0-ऊंचाई दृश्य बनाएं जो उसके माता-पिता में केंद्रित है और एक एंकर के रूप में कार्य करता है। (इसके लिए विशेषता android:layout_centerVertical="true" का उपयोग करें।) एंकर से ऊपर एक पाठ दृश्य और एंकर के नीचे अन्य को स्थिति दें।

+0

50% की बजाय शानदार, 0 ऊंचाई ... बहुत चालाक। धन्यवाद – xbakesx

+0

मेरा उत्तर नया टेक्स्टव्यू बनाने की आवश्यकता नहीं है https://stackoverflow.com/questions/22161456/vertically-centering-two-textviews-in-a-relativelayout/48880191#48880191 – blackHawk

+0

@blackHawk - सच है, मैं बना रहा हूँ एक नया विचार, लेकिन आप किस नए पाठ्यदृश्य के बारे में बात कर रहे हैं? साथ ही, आपके द्वारा पोस्ट किया गया समाधान यहां काम नहीं करेगा क्योंकि, जैसा कि ओपी ने सवाल में बताया है, माता-पिता की ऊंचाई कोडिंग समय पर नहीं जानी जाती है, इसलिए यह जानना असंभव है कि सही ऊर्ध्वाधर केंद्र प्राप्त करने के लिए किस मार्जिन का उपयोग करना है। –

2

मैंने इसके अंदर दो टेक्स्ट व्यू के साथ एक लंबवत रैखिकलाइट का उपयोग करके इस समस्या को हल कर लिया है।

ps .: एंड्रॉइड डिजाइन दिशानिर्देश http://developer.android.com/design/patterns/pure-android.htmlDon't use right-pointing carets on line items पर विशिष्ट अंक। यह एक लाइन आइटम नहीं हो सकता है जो आप कर रहे हैं, लेकिन यदि ऐसा है, तो बस इसे इंगित करें।

+0

धन्यवाद, यह पूरी तरह से काम करेगा। मुझे यकीन नहीं है कि एक लंगर के रूप में एक खाली दृश्य जोड़ना और वहां और अधिक लेआउट लपेटना बुरा है ... कैरेट पर टिप्पणी की भी सराहना करते हैं। मैंने पिछले सप्ताह अपने डिजाइन दिशानिर्देशों में देखा था। – xbakesx

+0

टिप्पणी फिर से अनदेखा कर रहा है। देखभाल का उपयोग, एलएल में पाठ दृश्यों को केंद्रित करने की समस्या वास्तव में हल हो गई थी? – greg7gkb

+0

@ greg7gkb - एलएल ऊंचाई 'wrap_content' पर सेट है और एलएल तब माता-पिता' रिलेवेटिवआउट 'में लंबवत केंद्रित है। यह आधार रेखा के बजाय दो 'टेक्स्ट व्यू' के ब्लॉक के मध्य बिंदु को संरेखित करता है। यह विकल्प है कि ओपी ने प्रश्न की आखिरी पंक्ति में सुझाव दिया था। –