2016-08-31 3 views
0

Я работаю над приложением Android, в котором у меня есть ListView, для которого я хотел бы добавить границу для каждой строки в ListView. Обычно добавление границы не должно быть проблемой, но граница в спецификациях дизайна составляет всего половину. Как я могу это сделать? Проверьте скриншот:Android: Как добавить частичную границу?

enter image description here

Как вы можете видеть серую линию, то есть граница, которая не трогает конец экрана.

Код:

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    android:orientation="vertical"> 

    <ListView 
     android:id="@+id/conversationList" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:layout_above="@+id/relativeLayout3" 
     /> 

    <RelativeLayout 
     android:layout_width="match_parent" 
     android:layout_height="50dp" 
     android:layout_alignParentBottom="true" 
     android:layout_alignParentLeft="true" 
     android:layout_alignParentStart="true" 
     android:background="@color/common_signin_btn_dark_text_default" 
     android:orientation="horizontal" 
     android:id="@+id/relativeLayout3"> 

     <ImageView 
      android:id="@+id/trashImage" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_alignParentLeft="true" 
      android:layout_alignParentStart="true" 
      android:layout_centerVertical="true" 
      android:layout_marginLeft="46dp" 
      android:layout_marginStart="46dp" 
      android:src="@drawable/swappossible" /> 

     <ImageView 
      android:id="@+id/swapImage" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_alignTop="@+id/trashImage" 
      android:layout_centerHorizontal="true" 
      android:src="@drawable/footerheart" /> 

     <ImageView 
      android:id="@+id/button3" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_alignParentEnd="true" 
      android:layout_alignParentRight="true" 
      android:layout_alignTop="@+id/swapImage" 
      android:layout_marginBottom="5dp" 
      android:layout_marginEnd="41dp" 
      android:layout_marginRight="41dp" 
      android:src="@drawable/footermessages" /> 
    </RelativeLayout> 

</RelativeLayout> 

Обновленный код

Ниже приведен код для отдельных строк в ListView.

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:descendantFocusability="blocksDescendants" 
    android:orientation="horizontal" 
    android:padding="5dip" 
    android:background="@color/common_action_bar_splitter" 

    > 

    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:orientation="vertical" 
     android:layout_marginLeft="5dp" 
     android:layout_marginStart="5dp" 
     android:layout_marginTop="5dp" 
     android:layout_marginBottom="5dp" 
     android:layout_marginRight="5dp" 
     android:layout_marginEnd="5dp" 
     > 

     <RelativeLayout 
      android:layout_width="match_parent" 
      android:layout_height="150dp" 
      > 
      <ImageView 
       android:layout_width="80dp" 
       android:layout_height="80dp" 
       android:id="@+id/seller" 
       android:src="@drawable/perfume" 
       android:background="@drawable/layout_image" 
       android:layout_alignTop="@+id/buyer" 
       android:layout_alignParentLeft="true" 
       android:layout_alignParentStart="true" /> 
      <ImageView 
       android:layout_width="80dp" 
       android:layout_height="80dp" 
       android:id="@+id/buyer" 
       android:src="@drawable/mixer" 

       android:background="@drawable/layout_image" 
       android:layout_alignTop="@+id/uploader" 
       android:layout_centerHorizontal="true" /> 

      <ImageButton 
       android:layout_width="35dp" 
       android:layout_height="35dp" 
       android:id="@+id/swapButton" 
       android:src="@drawable/swap_ready" 
       android:background="@null" 
       android:layout_marginTop="20dp" 
       android:layout_marginLeft="8dp" 
       android:layout_marginStart="8dp" 
       android:layout_alignTop="@+id/uploader" 
       android:layout_toRightOf="@+id/seller" 
       android:layout_toEndOf="@+id/seller" /> 

      <TextView 
       android:id="@+id/swapMessage" 
       android:layout_width="170dp" 
       android:layout_height="30dp" 
       android:textAppearance="?android:attr/textAppearanceMedium" 
       android:gravity="left" 
       android:singleLine="true" 
       android:text="Hey! I&apos;d like to swap..." 
       android:layout_above="@+id/textView4" 
       android:layout_alignParentLeft="true" 
       android:layout_alignParentStart="true" /> 

      <TextView 
       android:id="@+id/uploaderName" 
       android:layout_width="100dp" 
       android:layout_height="25dp" 
       android:layout_gravity="center_horizontal|top" 
       android:ellipsize="end" 
       android:singleLine="true" 
       android:gravity="center" 
       android:scrollHorizontally="true" 
       android:visibility="visible" 
       android:textAppearance="?android:attr/textAppearanceMedium" 

       android:text="Bridget" 
       android:layout_below="@+id/uploader" 
       android:layout_alignParentRight="true" 
       android:layout_alignParentEnd="true" /> 

      <ImageView 
       android:layout_width="60dp" 
       android:layout_height="80dp" 
       android:id="@+id/uploader" 
       android:src="@drawable/lena_round" 
       android:background="@null" 
       android:layout_above="@+id/swapMessage" 
       android:layout_alignLeft="@+id/uploaderName" 
       android:layout_alignStart="@+id/uploaderName" 
       android:layout_marginLeft="25dp" 
       android:layout_marginStart="25dp" 
       /> 

      <TextView 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:textAppearance="?android:attr/textAppearanceMedium" 
       android:text="10 minutes ago" 
       android:id="@+id/textView4" 
       android:layout_alignParentBottom="true" 
       android:layout_alignParentLeft="true" 
       android:layout_alignParentStart="true" 
       android:layout_alignRight="@+id/buyer" 
       android:layout_alignEnd="@+id/buyer" /> 

      <TextView 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:textAppearance="?android:attr/textAppearanceMedium" 
       android:text="Morrison" 
       android:id="@+id/uploaderLastName" 
       android:gravity="center" 

       android:layout_alignParentBottom="true" 
       android:layout_alignLeft="@+id/uploaderName" 
       android:layout_alignStart="@+id/uploaderName" 
       android:layout_alignRight="@+id/uploaderName" 
       android:layout_alignEnd="@+id/uploaderName" /> 
     </RelativeLayout> 

    </LinearLayout> 

    <View 
     android:layout_width="match_parent" 
     android:layout_height="1dp" 
     android:layout_margin="3dp" 
     android:layout_alignParentBottom="true" 
     android:background="#555555"/> 
</RelativeLayout> 

спасибо.

+0

добавить границу (которая на самом деле не граница, а сепаратор) запас. –

+0

@ VladMatvienko: Можете ли вы сказать мне, что именно вы имеете в виду и как это сделать? –

+0

добавьте 'View' в конец вашего макета списка элементов, установите его цвет фона в требуемый цвет, установите его высоту на требуемую высоту, установите его поля на требуемые поля в требуемые поля. –

ответ

1

Чтобы использовать пользовательский разделитель, вы можете создать представление в нижней части вашего элемента списка xml:

<View background="#555555" height="1dp" width="match_parent" margin="5dp"/> 

Отрегулируйте цвет, размер и поля для ваших требований.

Чтобы удалить разделитель системы по умолчанию, используйте

<ListView 
    android:divider="@null" 
    ... 
/> 
+0

Спасибо, это сработало. :-) –

1

Добавьте нижеследующее ниже в нижней части макета вашего списка.

<View 
    android:layout_width="match_parent" 
    android:layout_height="5dp" 
    android:layout_alignParentBottom="true" 
    android:background="#d7d7d7"/> 

или вы можете использовать recylerview как этот

<android.support.v7.widget.RecyclerView 
     android:id="@+id/recycler_view" 
     android:scrollbars="vertical" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content"/> 

и добавьте следующее в вашем build.gradle

dependencies { 
    compile fileTree(dir: 'libs', include: ['*.jar']) 
    testCompile 'junit:junit:4.12' 
    compile 'com.android.support:appcompat-v7:23.1.1' 
    compile 'com.android.support:design:23.1.1' 
    compile 'com.android.support:recyclerview-v7:23.1.1' 
} 
+0

@ Vlad Matvienko это нормально сейчас –

+0

Хороший вариант, поэтому рекомендуется использовать уже использованный код Владом ... Спасибо. –

+0

спасибо @Borg –