2016-06-14 13 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

に由来する場所を表示してください。この種の質問をするには、このよくある質問の記事を参照してください。 –

+0

入力した幅と高さを上書きしたことが判読された場合はhttp://stackoverflow.com/help/mcveボタンの 'ok.setLayoutParams(buttonParams); ' –

答えて

0

LayoutParamsは、親内の子ビューのサイズを処理するために作成されます。 だから私は、私がテストし、それが働いたあなたが

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

からok.setWidthok.setHeight

変更layoutparamsコンストラクタを削除するべきだと思います。してみてください !

+0

しかし、レイアウトパラメータをwrap_contentに設定しました。私のコードで幅を調整することができます。幅が変わっても高さは変わらない理由はありますか? – applepie

+0

私は正確な原因はわかりませんが、私はボタンのメジャーフェーズでこのケースを処理すると、ボタンの高さを再度計算して結果が表示されると思います。 –

関連する問題