2014-02-10 59 views
1

我正在研究广泛的代码库,并且需要为其大多数ListView添加标题。
我的问题是,标题需要没有填充,而现有的列表已经有一个20dp填充。
它可以设置列表视图填充到0dp &重写所有的列表视图内容的布局,但由于这不是最佳选项的代码库的大小,所以我正在寻找一种方式,通过代码来做到这一点:
有不同的填充标题&的内容。有没有人知道一种方法来做到这一点?列表视图:用于标题和内容的不同填充

编辑:澄清:我需要该标题是一个标准的listview滚动列表视图的其余部分。一个独立的标题确实是一个微不足道的问题。

+0

您必须为ListView项目和标题视图分开布局。所以,从ListView中删除填充并将其移动到项目的布局和标题的布局。 –

+0

您能否通过放置图像来解释这一点,并在那里表明究竟是什么问题? –

回答

1

我才发现这样做的正确方法有效:
设置列表填充为0,在视图中创建,例如,当其listfragment初始化:

setPadding(0,0,0,0); 

,并在适配器,设置每个元素的填充:

getViewFor (Item element, int globalPosition, int elementPosition, 
      View convertView, ViewGroup parent) { 
... 
convertView.setPadding(getItemPadding()); 
} 

这样我可以得到头&列表本身不同的补白(在我的情况,我想0填充标题)以最小代码& perf成本计算。

0

要使头到不同的视图,然后

mListView.addHeaderView(R.layout.mHeaderView); 
+0

nope,仍然提交到与列表视图相同的填充 – Teovald

+0

然后不要将你的填充添加到列表视图,而是将它添加到你的列表视图项目 –

+0

哦,如果你需要该标题是“粘”,不要将它添加到列表视图,还是你得到一个listview几个标题? –

-1

@Artoo是正确的,你能做的最好的事情是有你的ListView上面一个TextView,你可以有任何填充添加到它作为没有关联你的ListView。

下面是我的代码片段。

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:orientation="vertical"> 

<TextView 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:paddingBottom="20dp" 
    android:text="I am Header"/> 
<ListView 
    android:id="@+id/list" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content"  
    > 

</ListView> 

,这里是我的输出。 (我知道它看起来怪异),但它的作品。 :) enter image description here

如果您需要进一步的帮助,请告诉我。快乐的编码。 :)

+0

我不需要粘头,这确实很容易:)。 – Teovald

+0

您能否添加一段代码,这将有助于更好地理解问题?如果我正确理解了这种情况,那么你的列表项有20dp的填充,你不希望头部有这个。如果这是场景,则应该将填充添加到您在列表中膨胀的布局。由于您的标题将是一个单独的视图,它不会有任何填充效果。让我知道我是否缺少任何东西。 –

+0

正如问题中所解释的那样,我正在研究一个广泛的代码库,因此在为每种listview项目添加填充确实是更直接的解决方案,在这种情况下,它意味着重写许多复杂的布局,因此我正在寻找其他方法。 – Teovald