2013-11-21 5 views
0

У меня есть просмотр списка изображений, и я не могу получить дополнительное расстояние между вертикальными элементами. Пробовал много вещей, но пока не повезло. Я не могу понять, откуда происходит интервал.listview дополнительный интервал между пунктами

Вот XML, содержащий элемент управления ListView (Это обычай ListView, что делает перетаскивания/сортировки)

<?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" /> 

Когда я программно добавить дополнительные ImageViews в обычае Adaper, я получаю это для результата: enter image description here

Как можно уменьшить расстояние между изображениями?

Хотя я добавляю изображения в список программно, я не делаю никаких макетов или полей или чего-либо еще - просто изображений. Я, однако, читаю мои изображения несколько иначе. Я загружаюсь из идентификатора ресурса, который я создаю, используя некоторые манипуляции с строками и назначая растровые изображения в 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; 
      } 
     } 
+0

Показать создание ImageView и программно добавить его часть вашего кода. – Devrim

+0

добавил, что часть моего getView() в моем настраиваемом адаптере – Martin

+0

попробовала установить LinearLayouts в layout_height = "wrap_content" ?, особенно тот, который содержит поля настройки ListView – CSmith

ответ

0

вы пробовали андроид: layout_marginTop = "0dp" в вас XML-файл? В противном случае я бы просто пошел с listview вместо linearlayout

+0

сверху и снизу, чтобы негативно работать, но он просто не работает Похоже, мне нужно делать это, когда я просто помещаю изображения в список. – Martin

+0

Я понимаю, но поскольку вы фактически создаете список в java-файле вместо xml (у вас есть линейный макет), это лучшее решение. – user2383106

+0

Другая возможность - вы хотите, чтобы ваши списки перекрывались, потому что содержимое внутри них не занимало весь раздел – user2383106

Смежные вопросы