2010-07-12 15 views
7

मेरे पास मेरे आवेदन में एक बटन है। मैं प्रोग्रामेटिक रूप से अपनी स्थिति बदलना चाहता हूं। इस प्रकार मैं XML में एक बटन बनाया है:एंड्रॉइड बटन स्थिति प्रोग्रामेटिक

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    > 

<Button android:text="@+id/Button01" 
     android:id="@+id/Button01" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_marginLeft="50px" 
     android:layout_marginTop="10px" 
     > 
</Button> 
</LinearLayout> 

मान लीजिए मैं (layout_marginLeft के रूप में = "100px") बाएं से 100px के रूप में बटन की स्थिति सेट करना चाहते हैं। मैं इसे प्रोग्रामेटिक तरीके से कैसे कर सकता हूं? कृपया समस्या को हल करने में मेरी मदद करें।

+0

मुझे बात करने के लिए आते हैं ... असल में मेरे लेआउट 9 बटन होते हैं ... इसलिए कुछ बटन condition..so के आधार पर दृश्य और अदृश्य हैं मैं संरेखित करना चाहते हैं (बाएं या दाएं स्थानांतरित करें) यह प्रोग्रामेटिक रूप से ... कृपया मेरी मदद करें –

+0

इस उत्तर को देखें। यह स्पष्ट रूप से दिखाता है कि बटन पर मार्जिन कैसे सेट करें। http://stackoverflow.com/a/4594374/525541 – MindWire

उत्तर

3

पैडिंग और मार्जिन ही नहीं हैं ... इस सूत्र आप Set margins in a LinearLayout programmatically

के लिए क्या देख रहे है
+0

इस लिंक मेरे लिए उपयोगी है ... लेकिन मेरे लेआउट में 9 बटन हैं ... इसलिए कुछ इस स्थिति के आधार पर दृश्यमान और अदृश्य हैं .. इसलिए मैं इसे प्रोग्राम करनात्मक रूप से संरेखित करना चाहता हूं (बाएं या दाएं स्थानांतरित करें) ... कृपया मुझे मदद करें –

+1

क्या आपने देखा है कि दृश्यमान, अदृश्य दृश्यता देखने के लिए विकल्प छुपाएं http://developer.android.com/reference/android/view/View.html#GONE। यह इस बात पर निर्भर करता है कि क्या करने की योजना है लेकिन एक साफ समाधान आपके बटन को संरेखित करने के लिए होगा एक्सएमएल में और जब आपको उन्हें जाने की दृश्यता सेट करने की आवश्यकता नहीं होती है। अगर इससे मदद नहीं मिलती है तो कृपया अधिक जानकारी प्रदान करें ताकि हम आपकी मदद कर सकें। –

+0

एक ही समस्या थी। View.INVISIBLE और इसकी सही कोशिश की। धन्यवाद @MojoRisin – j2me

6

आपको दृश्य वस्तु प्राप्त करने और जावा ऑब्जेक्ट में बदलने की आवश्यकता है, फिर उस पर setPadding पर कॉल करें।

इस तरह की कुछ बात बाहर काम करेगा

Button myBtn; 
myBtn = (Button) findViewById(R.id.Button01); 
myBtn.setPadding(0,100,0,0); 

यहां अधिक पढ़ें: https://developer.android.com/reference/android/view/ViewGroup.MarginLayoutParams.html

+0

यह काम नहीं कर रहा है .. सेटमैर्गिन फ़ंक्शन के तहत लाल रेखा (त्रुटि) दिखा रहा है। मैं एंड्रॉइड 1.5 –

+0

का उपयोग कर रहा हूं सेटपैडिंग का प्रयास करें। – Pentium10

+0

मैंने btnTest.setPadding (100,0,0,0) भी कोशिश की है; लेकिन यह 100 चौड़ाई का बटन बनाता है और टेक्स्ट को दाएं हाथ पर हटा दिया जाएगा। लेकिन अभी भी –

2

आप बीटीएन के साथ setMargin() का उपयोग नहीं कर सकते हैं, इसे लेआउटपैम के साथ उपयोग करें और फिर btn.setLayoutParams(params);

7

ल्यूक, का उपयोग

RelativeLayout.LayoutParams rel_btn = new RelativeLayout.LayoutParams(
        LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); 

rel_btn.leftMargin = myXPosition; 
rel_btn.topMargin = myYPosition; 
rel_btn.width = buttonW; 
rel_btn.height = buttonH; 

myButton.setLayoutParams(rel_btn); 
संबंधित मुद्दे