2016-06-14 4 views
-2

У меня есть несколько кнопок в всплывающем окне. Я могу настроить ширину кнопки просто отлично, но я не знаю, почему я не могу настроить ее высоту. Вот часть моего кода:Почему моя высота кнопки не меняется?

public void popup(RelativeLayout v){ 
      RelativeLayout r = new RelativeLayout(this); 
      RelativeLayout.LayoutParams buttonParams = new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT); 
      // w is the width of the device screen, tested it isn't 0 
      buttonParams.setMargins(w/20, w/10, 0, 0); 
      Button ok = new Button(this); 
      ok.setBackgroundResource(R.drawable.buttonshape); 
      ok.setWidth(w/6); 
      ok.setHeight(w/35); 
      ok.setText("YES"); 
      ok.setTextSize(h/50); 
      ok.setLayoutParams(buttonParams); 
      r.addView(ok); 
      p.setContentView(r); 
      p.showAtLocation(v, 0, w/4, w/4); 
     } 

Я понимаю, что я могу изменить высоту, изменив (ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT) на конкретные цифры, но я не знаю, почему я могу настроить ширину, но не высоту с моим кодом ,

+1

Пожалуйста, покажите, где это значение w исходит от –

+0

. Порекомендуйте вам эту статью часто задаваемых вопросов, чтобы получить помощь в задании такого вопроса: http://stackoverflow.com/help/mcve –

+0

, если вы можете прочитать, что вы переопределили введенную ширину и высоту кнопки 'ok.setLayoutParams (buttonParams); ' –

ответ

0

LayoutParams создан для обработки размера дочернего представления внутри его родителя. Так я думаю, вы должны

удалить ok.setWidth и ok.setHeight

изменения layoutparams застройщика в

RelativeLayout.LayoutParams buttonParams = new RelativeLayout.LayoutParams(w/6, w/35); 

Я проверил, и она работала. Пожалуйста попробуйте !

+0

Но я установил параметры макета для wrap_content, и я был способный регулировать ширину с помощью моего кода. Есть ли причина, по которой ширина меняется, но нет? – applepie

+0

Я не знаю точно, потому что я думаю, что этап меры кнопки управляет этим случаем, он снова рассчитает высоту кнопки, и ваш результат появится. –

Смежные вопросы