在充气时,CardView失去了保证金

在我的活动中,我正在设置布局activity_main onCreate。 我想为我的arrays中的每个项目充气我的CardView。

到目前为止,我已经装好了所有东西,但是我的CardView已经失去了它们的余量。 通过XML添加到布局时,边距有效,但当它作为单独的XML文件膨胀时,边距会丢失。

我像这样膨胀activity_main_card:

LinearLayout item = (LinearLayout)findViewById(R.id.card_holder); View child = getLayoutInflater().inflate(R.layout.activity_main_card, null); item.addView(child); 

在activity_main_card中,我的XML如下:

          

任何人都能指出我出错的方向吗?

您将null作为父ViewGroupparameter passing给inflate() 。 这将导致忽略所有layout_*属性,因为layout_*不知道哪个属性对于放置它的容器有效(即它不知道在View上设置哪个LayoutParamstypes)。

 View child = getLayoutInflater().inflate(R.layout.activity_main_card, null); 

应该

 View child = getLayoutInflater().inflate(R.layout.activity_main_card, item, false); 

有关更多信息,请参阅这篇关于它的精彩文章 – 这是一个常见的错误。