在布局文件中为列表项添加padding时,可能会发现无论如何设置padding值,都没有任何效果。这是因为默认情况下,每个列表项的布局是使用系统自带的简单列表项布局(simple_list_item_1.xml),其中已经设置了padding值,因此我们在设置padding时会被覆盖。
要解决这个问题,可以通过创建自定义列表项布局来覆盖系统默认布局。首先,在res/layouts文件夹中创建一个名为“list_item.xml”的新布局文件,然后使用以下代码示例为其添加padding:
在这个示例中,我们通过在RelativeLayout上设置padding来增加列表项的padding值。由于我们使用了自定义布局,因此可以自由设置padding值而不会被系统默认布局覆盖。
最后,在Adapter中使用自定义布局,如下所示:
public class MyAdapter extend ArrayAdapter {
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View listItemView = convertView;
if(listItemView == null) {
listItemView = LayoutInflater.from(getContext())
.inflate(R.layout.list_item, parent, false);
}
TextView itemText = (TextView) listItemView.findViewById(R.id.item_text);
itemText.setText(getItem(position));
return listItemView;
}
}
在Adapter中,我们使用inflate()方法将自定义布局“list_item.xml”转换为列表项的视图,并使用findViewById()方法获取内部视图的引用。使用此方法,您可以在自定义布局中设置任何