0

このレイアウトの中にframeLayoutはいくつかのビューがあり、各ビューを上から特定の距離までマージンを付けたいと思います。次のコードを試しましたが、うまくいかないようです

   FrameLayout lytBoard = (FrameLayout) findViewById(R.id.lytBoard);
   LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(width, height);
   params.setMargins((int)board.cells.get(i).x1, (int)board.cells.get(i).y1, 0, 0);
   CellView cv = new CellView(getApplicationContext());
   cv.setLayoutParams(params);
   lytBoard.addView(cv);

セルビュークラス:

public class CellView extends View {

    public CellView(Context context) {
        super(context);
        // TODO Auto-generated constructor stub
    }
    public void onMeasure(int widthMeasureSpec, int heightMeasureSpec){
        super.onMeasure(widthMeasureSpec, heightMeasureSpec);

        int size = Math.min(getMeasuredWidth(), getMeasuredHeight());
        setMeasuredDimension(size, size);
    }

}
4

1 に答える 1

1

タイプ の、 のCellViewサブクラス に設定しています。のメソッドの定義では、メソッドはのparams を受け取り、margin プロパティを含んでいないため、これが問題の原因である可能性があります。ViewlayoutParamsLinearLayout.LayoutParamsViewsetLayoutParamsViewGroup.LayoutParamsViewGroup

LinearLayoutの代わりにサブクラス化を試みることができますView

于 2012-07-13T11:55:55.340 に答える