Android 如何为另一个类中的视图设置边距?
我做了一个构造函数,以编程的方式在里面设置了一些视图,并添加了一些规则。所以当我调用构造函数时,我看到了默认视图 现在我想达到这种观点,并改变设置的利润。这是基本的,我知道,但我不为我工作 有人能帮忙吗 我的构造函数的一部分:Android 如何为另一个类中的视图设置边距?,android,android-layout,constructor,Android,Android Layout,Constructor,我做了一个构造函数,以编程的方式在里面设置了一些视图,并添加了一些规则。所以当我调用构造函数时,我看到了默认视图 现在我想达到这种观点,并改变设置的利润。这是基本的,我知道,但我不为我工作 有人能帮忙吗 我的构造函数的一部分: _photoImgVw = new ImageView(getContext()); _photoImgVw.setImageResource(R.drawable.pic); _photoImgVw.setAdjustViewBounds(true);
_photoImgVw = new ImageView(getContext());
_photoImgVw.setImageResource(R.drawable.pic);
_photoImgVw.setAdjustViewBounds(true);
_photoImgVw.setMaxWidth(100);
_photoImgVw.setId(2);
lp2=new LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT);
lp2.setMargins(0,0,0,0);
addView(_photoImgVw,lp2);
LayoutParams lp3=new LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT);
lp3.addRule(RelativeLayout.RIGHT_OF,_photoImgVw.getId());
lp3.setMargins(0,0,0,0);
addView(_nameTxt,lp3);
调用活动进行更改:
facebookPersonView.lp2.setMargins(10,300,100,20);
确保layout params lp2是RelativeLayout.LayoutParams类的实例,而不是MarginLayoutParams,或者它的任何其他名为LayoutParams的子类。请参阅 如果参数是后者的实例,则它们不会包含RelativeLayout的任何规则。这意味着父布局不知道将视图“”放置在何处,因此无法理解边距 最好以如下方式明确声明:
RelativeLayout.LayoutParams lp2
= new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT,
LayoutParams.WRAP_CONTENT);
lp2.setMargins(0,0,0,0);
addView(_photoImgVw,lp2);
它仍将使其在左上角可见,但这是一种未定义的状态。您能提供更多详细信息吗?在这种情况下,外部布局是什么?例如,如果是框架布局,则必须设置正确的重力以使边距正常工作。我在中解释过。我们需要更多的代码,如何实例化lp2?@alexsc我的构造函数扩展了RelativeLayout。你在问这个吗?@DuyguK是的,编辑后就清楚了。谢谢。@Blundell我创建了我的构造器并命名为facebookPersonView。我想达到lp的利润率。