【问题标题】:AdapterView (TwoWayView) margin of itemAdapterView (TwoWayView) 项目边距
【发布时间】:2014-04-10 22:54:42
【问题描述】:

我正在使用TwoWayView 库:https://github.com/lucasr/twoway-view 来尝试实现一个水平的ListView,以彻底改变我之前的内容。 (HorizontalScrollView 带有水平方向的 LinearLayout,我添加了视图)

我想在第一个项目之前有一个margin,所以在第一次创建View 时左边有一个空格。但是当滚动时,空白区域也会滚动并消失。当使用普通的ListView 时,它本质上是我想要的HeaderView

当我使用 HorizontalScrollView 实现滚动时,我只是以编程方式检查了第一项并添加了边距,因为它的父项是 LinearLayout 并接受边距,所以它起作用了。但我不能在用于此AdapterView 的适配器的getView() 中执行此操作,因为它的LayoutParams 不继承ViewGroup.MarginLayoutParams

我也尝试过设置clipToPadding="false",但是视图被回收得太早了,这是不可接受的,因为我需要的填充明显很大。

有没有办法在不将所有HeaderView 代码从ListView 移入TwoWayView 库的情况下实现此行为?

【问题讨论】:

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


    【解决方案1】:

    你可以试试这样的:

    关于 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);
    
            }
    

    希望这会对你有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-02-26
      • 1970-01-01
      • 2021-08-26
      • 1970-01-01
      • 1970-01-01
      • 2017-01-04
      • 2015-12-22
      相关资源
      最近更新 更多