मुझे पुराने धागों को फिर से जीवित करने से नफरत होगी लेकिन यह एक ऐसी समस्या है जिसका सही उत्तर नहीं दिया गया है और इसके अलावा मैं खुद इस समस्या में भाग गया हूं।
यहां लंबा सा है, यदि आप केवल उत्तर में रुचि रखते हैं तो कृपया नीचे दिए गए सभी कोड को स्क्रॉल करें:
एंड्रॉइड: गुरुत्वाकर्षण और एंड्रॉइड: लेआउट_ ग्रेविटी अलग तरीके से काम करती है। यहाँ मैंने एक लेख पढ़ा है जिसने मेरी मदद की है।
लेख का GIST: ऊंचाई / चौड़ाई असाइन किए जाने के बाद गुरुत्वाकर्षण प्रभावित करता है। इसलिए गुरुत्वाकर्षण केंद्र एक दृश्य को प्रभावित नहीं करेगा जो FILL_PARENT किया गया है (इसे ऑटो मार्जिन के रूप में सोचें)। लेआउट_ग्रेविटी सेंटर उस दृश्य को प्रभावित करेगा जो FILL_PARENT है (इसे ऑटो पैड के रूप में सोचें)।
मूल रूप से, एंड्रॉइड: लेआउट_गैविटी कैनोनेट को प्रोग्रामेटिक रूप से एक्सेस किया जा सकता है, केवल एंड्रॉइड: ग्रेविटी। ओपी के मामले और मेरे मामले में, स्वीकृत उत्तर बटन को लंबवत केंद्र में नहीं रखता है।
कार्ति के जवाब में सुधार करने के लिए:
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
params.gravity = Gravity.CENTER;
button.setLayoutParams(params);
से लिंक करें LinearLayout.LayoutParams
।
एंड्रॉइड: लेआउट_गैविटी दिखाता है "कोई संबंधित तरीके" अर्थ प्रोग्राम तक नहीं पहुंच सकते हैं। जबकि गुरुत्वाकर्षण वर्ग में एक क्षेत्र है।