我正在使用TwoWayView
库:https://github.com/lucasr/twoway-view尝试实施一个水平ListView
种类来彻底检查我之前的内容。 (HorizontalScrollView
,其中我将视图添加到水平方向LinearLayout
我希望在第一个项目之前有一个margin
,因此在首次创建View
时左侧有一个空格。但滚动时,空白区域也会滚动并消失。使用普通ListView
时,它实际上是我想要的HeaderView
。
当我使用HorizontalScrollView
实现滚动时,我只是以编程方式检查了第一个项目并添加了边距,这是因为其父级为LinearLayout
并且接受边距。但我不能在用于此getView()
的适配器的AdapterView
中执行此操作,因为其LayoutParams
不会继承ViewGroup.MarginLayoutParams
我也尝试过设置clipToPadding="false"
,但视图过早回收,这是不可接受的,因为我需要的填充量非常大。
有没有办法在不将HeaderView
代码从ListView
移动到TwoWayView
库的情况下实现此行为?
答案 0 :(得分:1)
您可以尝试这样的事情:
on getView(int pos,View convertView,ViewGroup parent){}
{
if (convertView == null)
{ ... }
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams( ViewGroup.LayoutParams.WRAP_CONTENT , ViewGroup.LayoutParams.WRAP_CONTENT);
/// To set your margin, you just need to test the position :)
params.setMargins(left, top, right, bottom);
viewHolder.LinearLayout.setLayoutParams(params);
}
希望这会对你有所帮助。