2014-11-23 57 views
0

我有一个扩展了“ListView”的类。 在构造函数中,我想用这个代码来设置页边距:无法在自定义ListView中设置页边距

LayoutParams params = new LayoutParams(
      LayoutParams.MATCH_PARENT,  
      LayoutParams.MATCH_PARENT 
    ); 
    params.setMargins(10,0,0,0); 

对于一个未知的原因,我没有上PARAMS一个“setMargins”的方法...... 这很奇怪,因为如果在一个活动,我创建了一个新的ListView,我可以使用params没有任何问题。 我认为这很明显,但我不知道为什么,我找不到解决方案。

感谢您的帮助。

回答

0

也许您正在使用错误的LayoutParams类。尝试使用LinearLayout.LayoutParams

+0

就像我说的那样,这当然是显而易见的......是的。所以它工作。你知道为什么我没有这个问题,如果我在一个活动中创建一个新的列表视图?谢谢。 – IronRabbit 2014-11-23 17:03:56

0

您需要使用ViewGroup.LayoutParams。完成后请不要忘记拨打requestLayout()

设置边距,以像素为单位。对requestLayout()的调用需要完成 ,以便考虑新的页边空白。 左边和右边可能会被requestLayout()覆盖,具体取决于布局 的方向。

+0

对不起,我有同样的问题。 Morad的解决方案解决了这个问题。 – IronRabbit 2014-11-23 17:08:25

+0

@IronRabbit如果您尝试使用Moran解决方案将您的服装视图放置在RelativeLayout中,它会使您崩溃。 – 2014-11-23 17:14:43

+0

我已更正我的代码。事实上,如果我使用LinearLayout.LayoutParams它可以工作,但边距完全被忽略。如果我使用RelativeLayout.LayoutParams,它可以正常工作,并具有良好的行为。但是,ViewGroup完全不起作用,我有同样的错误;) – IronRabbit 2014-12-14 17:16:33