Android 使用几行代码设置LayoutParams

Android 使用几行代码设置LayoutParams,android,android-layout,Android,Android Layout,是否有一种简单易行的方法来设置LayoutParams?或者确切地说,玛格丽特夫妇?我想将MarginRight设置为几个dp,不幸的是,我无法在LayoutFile中设置这些,因为目标是一个ListFragment,在代码隐藏中看起来非常难看。 我之所以不在项目的布局中这样做,是为了使代码得到优化和性能 总而言之:有什么简单明了的方法来设置参数吗?是的,您可以这样做: MyImageView i2 = new MyImageView(context); LayoutParams lp

是否有一种简单易行的方法来设置LayoutParams?或者确切地说,玛格丽特夫妇?我想将MarginRight设置为几个dp,不幸的是,我无法在LayoutFile中设置这些,因为目标是一个ListFragment,在代码隐藏中看起来非常难看。 我之所以不在项目的布局中这样做,是为了使代码得到优化和性能


总而言之:有什么简单明了的方法来设置参数吗?

是的,您可以这样做:

  MyImageView i2 = new MyImageView(context);

  LayoutParams lp = new LayoutParams(300, 300);
  lp.LeftMargin = 100;
  lp.TopMargin = 100;
  lp.Gravity = 0;

  this.AddView(i2, lp);
根据容器的布局类型,可能需要将其编写为LinearLayout.LayoutParams


然后调用方法
setLayoutParams(lp)在给定的视图/布局/小部件上。

我现在就是这样做的,但是开销太大了。设置上下文,为Layoutparams构建一个额外的对象,然后设置值,最后为视图提供边距。那么,没有其他方法来设定利润率吗?据我所知,没有。这就是我发现我可以做到的。我不需要设置上下文,因为它来自使用此LayoutParams实例的自定义FrameLayout的构造函数。
LayoutParams lp = new LayoutParams( LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT );
lp.setMargins( left, top, right, bottom );