2010-07-12 32 views
7

Uygulamamda bir düğme var. Programatik olarak konumunu değiştirmek istiyorum. şöyle ben XML'inde bir düğme oluşturduk:Android Button Position Programatik olarak

<?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> 

varsayalım I (layout_marginLeft olarak = "100px") soldan 100px olarak düğmenin konumunu ayarlamak istiyorum. Programlı olarak nasıl yapabilirim? Lütfen sorunu çözmek için bana yardımcı olun.

+0

Aslında Benim Düzen 9 düğmeler içerir ... ... bu yüzden bazı düğmeler condition..so dayalı görünür ve görünmez ı hizalamak istiyorum bana noktaya gelsin kullanmak Programlı olarak ... (bana sola veya sağa hareket ettir) ... pls bana yardım et –

+0

Bu cevaba bir göz atın. Düğmelerdeki kenar boşluklarının nasıl ayarlanacağını açıkça gösterir. http://stackoverflow.com/a/4594374/525541 – MindWire

cevap

3

Dolgu ve marj aynı değildir ... Konuyu sen Set margins in a LinearLayout programmatically

aradığınızı olduğunu
+0

bu bağlantıyı benim için yararlı olur ... ama benim düzen 9 düğmeler içerir ... bu yüzden bazı koşullara göre görünür ve görünmez .. bu yüzden programlı olarak hizalamak (sola veya sağa hareket ettirmek) istiyorum ... pls bana yardım edin –

+1

Orada görünür, görünmez dışında fark ettiniz mi Ayrıca, görünürlük için http://developer.android.com/reference/android/view/View.html#GONE seçeneğini de gizler. Ne yapmayı planladığınıza bağlıdır, ancak temiz bir çözüm sadece düğmelerinizi hizalamaktır xml'de ve görünmeye ayarlamak için onlara ihtiyacınız olmadığında. Bu yardımcı olmazsa lütfen size yardımcı olabilmemiz için daha fazla bilgi verin. –

+0

aynı soruna sahipti. View.INVISIBLE ve mükemmel çalıştı. teşekkürler @MojoRisin – j2me

6

Görünümü almanız ve bir Java nesnesine dönüştürmeniz gerekiyor, ardından üzerine setPadding numaralı telefonu arayın.

bu gibi bazı şey dışarı çalışacak

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

Devamı burada: https://developer.android.com/reference/android/view/ViewGroup.MarginLayoutParams.html

+0

çalışmıyor. setMargins işlevi altında kırmızı çizgi (hata) gösteriliyor. Ben Android kullanıyorum 1.5 –

+0

SetPadding'i deneyin. – Pentium10

+0

Ayrıca denedim btnTest.setPadding (100,0,0,0); ama 100 genişlikteki butonu ve sağ taraftaki metnin üzerine yazı dökülmesini sağlar. Ama hala çalışmıyor –

2

setMargin()'u btn ile kullanamazsınız, LayoutParams ile kullanın ve btn.setLayoutParams(params);

7

Luke

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); 
İlgili konular