listview项目之间的额外间距

时间:2013-11-21 17:00:01

标签: android

我有一个图像的列表视图,我似乎无法从垂直项目之间获得额外的间距。尝试了很多东西,但到目前为止没有运气。我似乎无法弄清楚间距的来源。

这是包含ListView的XML(它是一个拖动/排序的自定义列表视图)

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout
    android:id="@+id/fan_ban_ctn"
    android:layout_width="match_parent"
    android:layout_height="0dp"
    android:layout_weight="0.1"
    android:background="@color/white"
    android:orientation="horizontal" >

    <Button
        android:id="@+id/fan_button"
        style="?android:attr/borderlessButtonStyle"
        android:layout_width="0dp"
        android:layout_height="fill_parent"
        android:layout_gravity="left|center_vertical"
        android:layout_weight="0.33"
        android:text="@string/fan"
        android:textSize="14sp" />

    <Button
        android:id="@+id/ban_button"
        style="?android:attr/borderlessButtonStyle"
        android:layout_width="0dp"
        android:layout_height="fill_parent"
        android:layout_gravity="center_vertical|center_horizontal"
        android:layout_weight="0.33"
        android:text="@string/ban"
        android:textSize="14sp" />

    <Button
        android:id="@+id/ctn_button"
        style="?android:attr/borderlessButtonStyle"
        android:layout_width="0dp"
        android:layout_height="fill_parent"
        android:layout_gravity="right|center_vertical"
        android:layout_weight="0.33"
        android:text="@string/ctn"
        android:textSize="14sp" />
</LinearLayout>

<LinearLayout
    android:id="@+id/wireless_mgmt"
    android:layout_width="match_parent"
    android:layout_height="0dp"
    android:layout_weight="0.9"
    android:background="@color/white"
    android:orientation="horizontal"
    android:weightSum="1.0" >

    <com.att.attbusiness.widget.DynamicListView
        android:id="@+id/widget_list"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="0.10"
        android:divider="@android:color/transparent"
        android:dividerHeight="2dp"/>

    <ScrollView
        android:id="@+id/widget_content"
        android:layout_width="0dp"
        android:layout_height="fill_parent"
        android:layout_marginRight="12dp"
        android:layout_weight="0.85"
        android:background="@color/white" >

        <FrameLayout
            android:id="@+id/wireless_fragment_Container"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent" />
    </ScrollView>
</LinearLayout>

,列表项目在这里:

<ImageView
    android:id="@+id/widget_btn"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:src="@drawable/wm_plan" />

当我以编程方式在自定义Adaper中添加其他ImageView时,我明白了 结果: enter image description here

如何缩小图像之间的间距?

虽然我以编程方式将图像添加到listview,但我不做任何布局或边距或任何事情 - 只是图像。但是,我确实以不同的方式阅读了我的图像。我从我使用一些String操作构建的资源ID加载并将位图分配给ArrayLists。我有一个选定的和未选择的版本,两个都是相同的大小。

private final static String[] widgetNames = new String[] {
    "wm_device", "wm_userinfo", "wm_billing", "wm_plan", "wm_features", "wm_access_options", "wm_applications", 
    "wm_analytics", "wm_manage_a_list"
};

<...>

for (int i = 0; i < widgetNames.length; ++i) {
        int normalID = this.getResources().getIdentifier(widgetNamesOrdered[i], "drawable", "com.att.attbusiness");
        int selectID = this.getResources().getIdentifier(widgetNamesOrdered[i]+"_selected", "drawable", "com.att.attbusiness");
        mWidgetList.add(widgetNamesOrdered[i]);         

        if (normalID != 0) {
            widgetIcons.add(i, (Bitmap) BitmapFactory.decodeResource(this.getResources(), normalID));
        }           

        if (selectID != 0) {
            widgetIconsSelected.add(i, (Bitmap) BitmapFactory.decodeResource(this.getResources(), selectID));
        }


    }

这是我的自定义适配器中用于在listview中设置图像的部分:

// if this button isn't the selected, make sure it's off
        if(mSelectedPosition != position){

            holder.widget.setImageBitmap(widgetIcons.get(position));
        }
        else {
            holder.widget.setImageBitmap(widgetIconsSelected.get(position));
            if(mSelectedBtn != null && holder.widget != mSelectedBtn){
                mSelectedBtn = holder.widget;
            }
        }

1 个答案:

答案 0 :(得分:0)

你在xml文件中试过android:layout_marginTop =“0dp”吗?否则我只会使用listview而不是linearlayout