14

xml にラジオグループがあり、ボタンはプログラムで生成されます。プログラムでボタン間に間隔を追加するにはどうすればよいですか。

私はそれが何かのようなものだと思ったが、私のオブジェクトには明白なまたはメソッドLayoutParamsが付属していない.setPaddingsetMargins

これは私が試していたものです

RadioButton currentButton = new RadioButton(context);
            currentButton.setText(item.getLabel());
            currentButton.setTextColor(Color.BLACK);

            //add padding between buttons
            LayoutParams params = new LayoutParams(context, null);
            params. ... ??????
            currentButton.setLayoutParams(params);
4

1 に答える 1

26

パディング

通常LayoutParams、パディングを適用するメソッドはありませんが、ビューにはあります。RadioButton はビューのサブクラスであるため、たとえば次のようにView.setPadding()を使用できます。

currentButton.setPadding(0, 10, 0, 10);

これにより、上部に 10 ピクセル、下部に 10 ピクセルのパディングが追加されます。px のほかに他の単位を使用したい場合(例: dp)を使用TypedValue.applyDimension()して、最初にそれらをピクセルに変換できます。

余白

マージンは、 MarginLayoutParamsをサブクラス化するいくつかの特定の LayoutParams クラスに適用されます。マージンを設定するときは、特定のサブクラスを使用してください。たとえばRadioGroup.LayoutParams、一般的な ViewGroup.LayoutParams (親レイアウトがRadioGroup)の代わりに使用してください。その後、単に使用できますMarginLayoutParams.setMargins()

サンプル:

RadioGroup.LayoutParams params 
           = new RadioGroup.LayoutParams(context, null);
params.setMargins(10, 0, 10, 0);
currentButton.setLayoutParams(params);
于 2012-06-08T15:38:28.340 に答える