2012-04-14 16 views
6

में काम नहीं करता है मैं एक समस्या पर फंस गया हूं और मुझे नहीं पता, इसका क्या कारण है। मैं इस तरह एक बहुत ही सरल लेआउट है:टेक्स्ट व्यू सेट ग्रेविटी() जावा

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="fill_parent" 
android:layout_height="wrap_content" 
android:orientation="vertical"> 
<TextView 
    android:id="@+id/my_text_view" 
    android:layout_width="wrap_content" 
    android:layout_height="fill_parent" 
    android:layout_gravity="NOTE_THIS" 
    android:textColor="#FFFFFF" 
    android:textSize="22dp" 
    android:text="TestText"/> 
</LinearLayout> 

जो एक और लेआउट के अंदर शामिल किया गया है। अगर मैं xml के अंदर गुरुत्वाकर्षण बदलता हूं तो मुझे लेआउट-एडिटर और मेरे फोन पर एक ही परिणाम दिखाई देता है। अगर मैं गुरुत्वाकर्षण को myTextView.setGravity(Gravity.CENTER) के साथ प्रोग्रामेटिक रूप से लागू करना चाहता हूं तो यह कुछ भी नहीं बदलेगा। और मैं एक टेक्स्ट व्यू

पर लेआउटग्रैविटी सेट नहीं कर सकता हूं, मैं डीबग उद्देश्यों के लिए कोशिश करता हूं ताकि उन्हें तीन गुना प्रत्येक अन्य गुरुत्वाकर्षण के साथ शामिल किया जा सके जो काम भी करता है। तो मुझे लगता है कि सबकुछ मेरे लेआउट के साथ ठीक है और मुझे एक बग या कुछ और याद आना चाहिए। क्या कोई मुझे एक संकेत दे सकता है जिसे मैं भी कोशिश कर सकता हूं, या इस समस्या का कारण क्या है?

उत्तर

24

सेट android:layout_width="fill_parent" के रूप में अपने TextView की चौड़ाई तो आप प्रोग्राम myTextView.setGravity(Gravity.CENTER)

+0

इसे "fill_parent" देने के बाद टेक्स्ट व्यू के आंतरिक विडियो को कैसे प्राप्त किया जा सकता है, क्योंकि GetWidth मुझे पैरेंट LienearLayout –

+0

की चौड़ाई देता है केवल गुरुत्वाकर्षण स्थापित करने के लिए? – waqaslam

+0

क्योंकि यह केवल गुरुत्वाकर्षण स्थापित नहीं कर रहा है, लेकिन पाठ को फिर से शुरू कर रहा है, जो काम करता है अगर मुझे इसकी सही चौड़ाई मिलती है –

1

आप माता पिता के रूप LinearLayout उपयोग करते हैं, तो layout_gravity चित्र जो नियंत्रण हां, तो इसके बजाय android:layout_gravity उपयोग android:gravity का उपयोग कर के अंदर नियंत्रण न कि सामग्री संरेखित में आता है।

+0

आह खेद यह मेरी गलती थी ... मैं लेआउटग्राइटी सेट करना चाहता हूं क्योंकि गुरुत्वाकर्षण कुछ भी नहीं करता है ... मेरा प्रश्न अपडेट किया गया –

5

का उपयोग कर आप LayoutParams की गंभीरता को निर्धारित करने की आवश्यकता सेट कर सकते हैं खुद को देखें के बजाय वस्तु:

TextView tv = new TextView(getApplicationContext()); 
LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.FILL_PARENT); 
lp.gravity = Gravity.CENTER; 
tv.setLayoutParams(lp); 
संबंधित मुद्दे