2013-04-05 3 views
2

Я пытаюсь иметь список, где элементы имеют закругленные углы, а элементы расположены друг от друга. Это делается с помощью настраиваемого ArrayAdapter.Пытается перемещать элементы в ListView при использовании адаптера и извлекаемого. Маржа не работает

MyCustomAdapter arrAdapter = new MyCustomAdapter(); 
setListAdapter(arrAdapter); 

Я использую рисуем изображение для закругления углов

<?xml version="1.0" encoding="utf-8"?> 
<shape xmlns:android="http://schemas.android.com/apk/res/android" 
android:shape="rectangle" > 

    <corners android:radius="10dp" /> 

    <gradient 
    android:angle="90" 
    android:endColor="#993333" 
    android:startColor="#ffffff" 
    android:type="sweep" /> 

    <solid android:color="#ffffff" /> 

    <stroke 
    android:width="1dp" 
    android:color="#000000" /> 
</shape> 

и установить его в макете в качестве фона на самый верхний контейнер - в LinearLayout

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="match_parent" 
android:layout_height="wrap_content" 
android:layout_margin="4dp" 
android:background="@drawable/square" 
android:orientation="horizontal" > 

<TextView 
    android:id="@+id/routeTag" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_margin="5dp" 
    android:background="@drawable/circle" 
    android:padding="10dp" 
    android:text="text" 
    android:textAppearance="?android:attr/textAppearanceLarge" /> 

<LinearLayout 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical" > 

    <RelativeLayout 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" > 

     <TextView 
      android:id="@+id/stop" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:padding="5dp" 
      android:text="some text" 
      android:textAppearance="?android:attr/textAppearanceMedium" 
      android:textSize="14sp" /> 

     <TextView 
      android:id="@+id/stopD" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_alignParentRight="true" 
      android:padding="5dp" 
      android:text="(text)" 
      android:textColor="#777777" 
      android:textSize="10sp" /> 
    </RelativeLayout> 

    <RelativeLayout 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" > 

     <TextView 
      android:id="@+id/nextTT" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:paddingBottom="5dp" 
      android:paddingLeft="5dp" 
      android:paddingRight="9dp" 
      android:paddingTop="5dp" 
      android:text="text" 
      android:textAppearance="?android:attr/textAppearanceMedium" 
      android:textSize="14sp" /> 

     <TextView 
      android:id="@+id/moreTT" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_alignParentBottom="true" 
      android:layout_toRightOf="@id/nextTrainTime" 
      android:paddingBottom="5dp" 
      android:text="text" 
      android:textAppearance="?android:attr/textAppearanceMedium" 
      android:textSize="12sp" /> 
    </RelativeLayout> 
</LinearLayout> 

</LinearLayout> 

По какой-то причине на графическом дисплее я могу видеть этот единственный элемент точно так, как хочу, - с полями вокруг (я также хочу, чтобы он отошел от краев экрана слева и справа). Но когда я запускаю это и позволяю адаптеру выполнять свою работу, я получаю список элементов, касаясь сторон экрана, и между ними нет места отдельно от одной отдельной строки, которая используется для разделения элементов в обычном списке.

У кого-нибудь есть ключ, как заставить себя вести себя ?! У меня есть поиск по всему миру.

Спасибо за вашу помощь

+0

разместим ваш адаптер код – Nezam

ответ

1

Пространство между элементом и широкоэкранный может быть сделано с:

<?xml version="1.0" encoding="UTF-8"?> 
<layer-list xmlns:android="http://schemas.android.com/apk/res/android"> 

    <item android:left="10dp" 
     android:right="10dp" 
     android:top="10dp" 
     android:bottom="10dp"> 
     <shape android:shape="rectangle">...</shape> 
</item> 

В моем случае я использовал андроида: делитель и Android: dividerHeight на ListView блок для разделения каждого элемента ListView и левого-правого пространства с объектами android:right.

Сообщение, где я получил информацию был this

+0

Спасибо Alex. Это сделал трюк. И мне нравится ваше решение по ссылке, поскольку я не использую явный тег ListView, но позже я добавил изменение в dividerHeight программно, чтобы избежать линии между элементами. Еще раз спасибо. – Alon

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

  • Нет связанных вопросов^_^