2013-10-11 68 views

回答

6

我遇到了同样的问题,但与RelativeLayout。我通过将边距放在ViewStub定义上来修复它。这可能不是最好的方法,最好的方法可能是使用层次布局,其中根布局的第一个孩子是设置了边距并包含所有其他元素的孩子。

不确定这是根本原因,但这些是我所知道的两种解决方法。

2

方法1: 根据Android开发者网站,无论何时使用ViewStub,其布局参数都会传递给膨胀的孩子。因此,要设置布局参数,例如marginLeft,marginTop,marginRight,marginBottom,您必须将值设置为ViewStub,它将被传递给充气的孩子。

enter image description here

方法2:要不然ViewStub是可见后,您可以动态创建的LayoutParams并设置为ViewGroup.This也适用。

LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT); 
     params.leftMargin =getResources().getDimensionPixelSize(R.dimen.four); 
     params.rightMargin=getResources().getDimensionPixelSize(R.dimen.four); 
     params.bottomMargin=getResources().getDimensionPixelSize(R.dimen.eight); 
     findViewById(R.id.linearLayout).setLayoutParams(params);