AdapterView(TwoWayView)项目边距

时间:2013-12-11 16:19:10

标签: android android-listview android-scrollview android-adapterview

我正在使用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库的情况下实现此行为?

1 个答案:

答案 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);

        }

希望这会对你有所帮助。