SORU
20 Mart 2010, CUMARTESİ


Bir LinearLayout ayarlanmış kenar boşlukları programlı

Java kullanmaya çalışıyorum (XML değil) ekranı kaplayacak düğmeleri ile bir LinearLayout oluşturmak için, ve kenar boşlukları var. Burada kenar boşlukları olmadan çalışan kod:

  LinearLayout buttonsView = new LinearLayout(this);
  buttonsView.setOrientation(LinearLayout.VERTICAL);
  for (int r = 0; r < 6;   r)
  {
   Button btn = new Button(this);
   btn.setText("A");

   LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.FILL_PARENT, LinearLayout.LayoutParams.FILL_PARENT); // Verbose!
   lp.weight = 1.0f; // This is critical. Doesn't work without it.
   buttonsView.addView(btn, lp);
  }
  ViewGroup.LayoutParams lp = new ViewGroup.LayoutParams(ViewGroup.LayoutParams.FILL_PARENT, ViewGroup.LayoutParams.FILL_PARENT);
  setContentView(buttonsView, lp);

Bu gayet iyi çalışıyor, ama nasıl yeryüzünde onlar arasında boşluk vardır bu yüzden düğmeleri boşlukları veriyorsun? LinearLayout.MarginLayoutParams, ama bu kadar weight Hiç bir üye var kullanmaya çalıştım. Ve eğer onun kurucu lp ya da geçersen işe yaramıyor.

Bu imkansız mı? Öyle görünüyor, ve ilk Android düzeni görev olmaz çünkü sadece XML yapabilirsiniz.

CEVAP
9 HAZİRAN 2010, ÇARŞAMBA


İşte bunu gerçekleştirmek için küçük bir kod:

LinearLayout ll = new LinearLayout(this);
ll.setOrientation(LinearLayout.VERTICAL);

LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(
     LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT);

layoutParams.setMargins(30, 20, 30, 0);

Button okButton=new Button(this);
okButton.setText("some text");
ll.addView(okButton, layoutParams);

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Alan Fullmer

    Alan Fullmer

    3 EYLÜL 2010
  • Candyrat Records

    Candyrat Rec

    10 Mayıs 2006
  • Paulo Bautista

    Paulo Bautis

    21 Aralık 2008