मैं जानना चाहूंगा कि क्या कॉल करने का कोई तरीका है android:layout_gravity
एक जावा विधि से संपत्ति। मैंने इसे करने के लिए एंड्रॉइड डॉक्यूमेंटेशन में कोई विधि नहीं पाई। यह उस लेआउट की तस्वीर है जिसे मैं लागू करना चाहता हूं:
http://www.anddev.org/resources/image/2234
मैं इसे निम्नानुसार XML के माध्यम से करना जानता हूं:
<FrameLayout
xlmns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content">
<Button
android:layout_gravity="left|center_vertical"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="<" />
<Button
android:layout_gravity="right|center_vertical"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text=">" />
</FrameLayout>
लेकिन मेरी स्थिति में, मुझे इसे जावा कोड के माध्यम से करने की आवश्यकता है, क्योंकि मैं गतिशील रूप से किसी अन्य लेआउट दृश्य को लागू करूंगा। जावा कोड के साथ XML लेआउट को मर्ज करने से बचने के लिए, मैं जावा का उपयोग करके सभी लेआउट बनाना पसंद करूंगा।
उत्तर:
जवाब के लिए 2 9। 1खैर जहाँ तक मैं समझता हूँ तुम खोज रहे हो इस यह अन्य लेआउट के लिए उपयुक्त लेआउट लेआउट कक्षाओं को देखने के लिए FrameLayout के लिए है। अपने XML में गुरुत्वाकर्षण की तरह सेटिंग के लिए कुछ का उपयोग करें:
FrameLayout.LayoutParams params = new FrameLayout.LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT,Gravity.LEFT | Gravity.CENTER_VERTICAL)
के बाद addView
नव निर्मित के साथ LayoutParams
जवाब के लिए 2 № 2
शायद मैं आपको गलत समझ रहा हूँ, लेकिन यहाँ यह है:
http://developer.android.com/reference/android/widget/TextView.html#setGravity(int)
जवाब के लिए 2 № 3
ध्यान रहे! हालांकि यह LinearLayout के साथ काम नहीं करेगा। क्योंकि LinearLayout.LayoutParams (...) निर्माता FrameLayout.LayoutParams (...) निर्माता से अलग है। तीसरा पैरामीटर गुरुत्वाकर्षण नहीं है "वजन।
LinearLayout.LayoutParams(int width, int height, float weight)
के रूप में विरोध
FrameLayout.LayoutParams(int width, int height, int gravity)
और इस कॉल के बावजूद उत्पादन नहीं कर रहा है संकलक त्रुटि वास्तव में गलत है:
lparams = new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT, Gravity.LEFT);
उत्तर के लिए 1 № 4
button.setBackgroundResource(R.drawable.sound_on);
button.setText("On");
button.setGravity(Gravity.CENTER_VERTICAL| Gravity.RIGHT);
button.invalidate();
उत्तर के लिए 1 № 5
बदलना layout_gravity
मौजूदा दृश्य के लिए विशेषता:
Button button = (Button) findViewById(R.id.some_button);
FrameLayout.LayoutParams params;
params = (LayoutParams) button.getLayoutParams();
params.gravity = Gravity.BOTTOM | Gravity.CENTER_HORIZONTAL;
button.setLayoutParams(params);
बटन एक में समाहित है FrameLayout
जिसमें एक है gravity
के अनुरूप है layout_gravity
XML विशेषता। डॉक्यूमेंटेशन लिंक.
उत्तर के लिए -1 № 6
बटन जोड़ने से पहले, आपको अपने लेआउट के उन्मुखीकरण को बदलना चाहिए
yourbutton.setGravity(Gravity.RIGHT);
LayoutParams layout = new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT, Gravity.RIGHT);
layout.gravity = Gravity.RIGHT;
yourbutton.setLayoutParams(layout);
yourlayout.setGravity(Gravity.RIGHT);
yourlayout.addView(yourbutton);