2013-05-14 8 views
11

Jak ustawić programowo margines 20dp między przyciskiem "regler" a "decommender".Ustaw margines między dwoma przyciskami programowo od liniowego linelayout

enter image description here

Oto moje funkcjonowanie

LinearLayout lytmain = new LinearLayout(Mcontex); 
      lytmain.setOrientation(LinearLayout.VERTICAL); 
      LinearLayout lytdate = new LinearLayout(Mcontex); 
      LinearLayout lytbutton = new LinearLayout(Mcontex); 
      lytbutton.setBackgroundResource(R.color.black); 



      lytbutton.setBackgroundResource(R.color.black); 
      lytdate.setBackgroundResource(R.color.black); 
      lytmain.setBackgroundResource(R.color.black); 
      Button btnset = new Button(Mcontex); 
      Button btncancel = new Button(Mcontex); 


      btncancel.setShadowLayer(2, 1, 1, R.color.black); 
      btnset.setShadowLayer(2, 1, 1, R.color.black); 
      btnset.setBackgroundResource(R.drawable.black_button); 
      btncancel.setBackgroundResource(R.drawable.black_button); 

      btnset.setTextColor(Mcontex.getResources().getColor(R.color.white)); 
      btncancel.setTextColor(Mcontex.getResources().getColor(R.color.white)); 
      btncancel.setTextSize(15); 
      btnset.setTextSize(15); 
      btnset.setText("Régler"); 
      btncancel.setText("Décommander"); 

      btnset.setGravity(Gravity.CENTER); 
      btncancel.setGravity(Gravity.CENTER); 

      final WheelView month = new WheelView(Mcontex); 
      final WheelView year = new WheelView(Mcontex); 
      final WheelView day = new WheelView(Mcontex); 

      lytdate.addView(day, new LayoutParams(
        android.view.ViewGroup.LayoutParams.WRAP_CONTENT, 
        android.view.ViewGroup.LayoutParams.WRAP_CONTENT, 1.2f)); 
      lytdate.addView(month, new LayoutParams(
        android.view.ViewGroup.LayoutParams.WRAP_CONTENT, 
        android.view.ViewGroup.LayoutParams.WRAP_CONTENT, 0.8f)); 

      lytdate.addView(year, new LayoutParams(
        android.view.ViewGroup.LayoutParams.WRAP_CONTENT, 
        android.view.ViewGroup.LayoutParams.WRAP_CONTENT, 1f)); 
      requestWindowFeature(Window.FEATURE_NO_TITLE); 



      lytbutton.addView(btnset, new LayoutParams(
        android.view.ViewGroup.LayoutParams.WRAP_CONTENT, 
        android.view.ViewGroup.LayoutParams.WRAP_CONTENT,1.5f)); 

      lytbutton.addView(btncancel, new LayoutParams(
        android.view.ViewGroup.LayoutParams.WRAP_CONTENT, 
        android.view.ViewGroup.LayoutParams.WRAP_CONTENT, 1.5f)); 


      lytbutton.setPadding(5, 5, 5, 5); 
      lytmain.addView(lytdate); 
      lytmain.addView(lytbutton); 

      setContentView(lytmain); 

      getWindow().setLayout(LayoutParams.FILL_PARENT, 
        LayoutParams.WRAP_CONTENT); 
+0

Istnieje wiele lub bardziej skuteczny sposób, aby wybrać datę, zamiast tego iOSish „rzeczy” ;-) –

+0

https://github.com/Prototik/HoloEverywhere lub https://github.com/SimonVT/ android-datepicker –

+0

@Waza_Be: oczywiście kochanie, ale na razie ta sprawa z ios jest moim problemem. dzięki za przykład :) – Dimitri

Odpowiedz

33

Zastosowanie LinearLayout.LayoutParams

http://developer.android.com/reference/android/widget/LinearLayout.LayoutParams.html

Można setMargins do LayoutParams, następnie setLayoutParams do widoku.

LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
       LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); 
params.setMargins(0, 2, 0, 0); 
button.setLayoutParams(params); 
+3

Próbowałem, ale nie ma efektów na przycisku – Dimitri

+0

Wiwaty udało mi się to zrobić. miałeś rację :) – Dimitri

Powiązane problemy