संक्षिप्त उत्तर: कंटेनर के सभी बच्चे के विचारों के गुरुत्वाकर्षण का उपयोग करना android:gravity
या setGravity()
नियंत्रित करना; एक कंटेनर में एक व्यक्ति को देखने के गुरुत्वाकर्षण का उपयोग android:layout_gravity
या setLayoutParams()
नियंत्रित करने के लिए।
लंबी कहानी: नियंत्रण गुरुत्वाकर्षण के जैसे एक रेखीय लेआउट कंटेनर में LinearLayout
या RadioGroup
, वहाँ दो दृष्टिकोण हैं:
1) LinearLayout
कंटेनर के सभी बच्चे के विचारों के गुरुत्वाकर्षण को नियंत्रित करने के लिए (जैसा कि आपने अपनी पुस्तक में किया था), कोड में लेआउट XML फ़ाइल या विधि में उपयोग android:gravity
(नहीं android:layout_gravity
) setGravity()
।
2) अपने कंटेनर में एक बच्चे के दृश्य के गुरुत्वाकर्षण को नियंत्रित करने के लिए, android:layout_gravity
XML विशेषता का उपयोग करें । कोड में, किसी LinearLayout.LayoutParams
को दृश्य प्राप्त करने और उसके गुरुत्वाकर्षण को निर्धारित करने की आवश्यकता होती है । यहां एक कोड उदाहरण दिया गया है जो क्षैतिज रूप से उन्मुख कंटेनर में नीचे की ओर एक बटन सेट करता है:
import android.widget.LinearLayout.LayoutParams;
import android.view.Gravity;
...
Button button = (Button) findViewById(R.id.MyButtonId);
// need to cast to LinearLayout.LayoutParams to access the gravity field
LayoutParams params = (LayoutParams)button.getLayoutParams();
params.gravity = Gravity.BOTTOM;
button.setLayoutParams(params);
क्षैतिज LinearLayout
कंटेनर के लिए, उसके बच्चे के दृश्य के क्षैतिज गुरुत्वाकर्षण को एक के बाद एक छोड़ दिया जाता है और इसे बदला नहीं जा सकता है। स्थापना android:layout_gravity
करने के लिए center_horizontal
कोई प्रभाव नहीं है। डिफ़ॉल्ट ऊर्ध्वाधर गुरुत्व केंद्र (या Center_vertical) है और इसे ऊपर या नीचे बदला जा सकता है। दरअसल डिफ़ॉल्ट layout_gravity
मान है, -1
लेकिन Android ने इसे लंबवत रूप से केंद्र में रखा है।
एक क्षैतिज रैखिक कंटेनर में बच्चे के विचारों की क्षैतिज स्थिति को बदलने के लिए, कोई भी layout_weight
बच्चे के दृश्य के मार्जिन और पैडिंग का उपयोग कर सकता है ।
इसी तरह, वर्टिकल व्यू ग्रुप कंटेनर के लिए, इसके चाइल्ड व्यू का वर्टिकल ग्रेविटी एक-दूसरे के ऊपर एक-दूसरे से जुड़ा होता है और इसे बदला नहीं जा सकता। डिफ़ॉल्ट क्षैतिज गुरुत्वाकर्षण केंद्र (या center_horizontal
) है और इसे बाएं या दाएं में बदला जा सकता है।
दरअसल, एक बच्चे के दृश्य जैसे कि बटन में android:gravity
XML विशेषता और setGravity()
अपने बच्चे के विचारों को नियंत्रित करने की विधि भी है - इसमें पाठ। Button.setGravity(int)
इस से जुड़ा हुआ है developer.android.com प्रविष्टि ।