/ / जावा Android के लिए विधि: layout_gravity - जावा, Android, लेआउट

एंड्रॉइड के लिए जावा विधि: layout_gravity - जावा, एंड्रॉइड, लेआउट

मैं जानना चाहूंगा कि क्या कॉल करने का कोई तरीका है 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);