5

ボタンの間に 20px の下部マージンを持つボタンを垂直方向に自動的に生成したいと考えています。LayoutParams オブジェクトでマージンを設定しようとしましたが、成功しませんでした。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/regions_search"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:layout_marginBottom="30dip"
    android:orientation="vertical" >
</LinearLayout>



@Override
public void onCreate(Bundle savedInstanceState) {

    ...

    for (Region region : regionsList) {

        //create new button     
        Button button = new Button(mContext);

        //set infos
        int id = Integer.parseInt(Long.toString((Long) region.getId()));        button.setId(id);
        button.setText(region.getName() + "( " + region.getStores_nb() + " )");

        //Layoutparams setting
        FrameLayout.LayoutParams params = new FrameLayout.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT);
        params.setMargins(0, 0, 0, 20);

        button.setLayoutParams(params);

        myLinear.addView(button);

        }

画像でわかるように、画像の間にスペースはありません。誰かが理由を知っていますか?ありがとうございました ! ここに画像の説明を入力

4

2 に答える 2

10

あなたはこれを試すことができます:

LinearLayout.LayoutParams layoutParams = (LinearLayout.LayoutParams) button.getLayoutParams();
layoutParams.bottomMargin += 20;
button.setLayoutParams(layoutParams);
于 2012-10-26T08:19:32.353 に答える
2

使用しているxmlのように、LinearLayout.LayoutParamsの代わりに使用してみてください..FrameLayout.LayoutParamsLinearLayout

LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT);
于 2012-10-26T08:15:34.463 に答える