Как рисовать границы и разделители в представлении

#android #android-layout

#Android #android-макет

Вопрос:

Я разрабатываю приложение, и мне нужно нарисовать границы и разделители в представлении, например, в приложении eBay.

Я думаю о сочетании фигур и представления с 1dp. Есть другой простой способ?

Приложение ebay. Большое спасибо.

Комментарии:

1. Собираетесь ли вы использовать ListView или Views в LinearLayout?

2. Галлал, я пытаюсь использовать представления внутри LinearLayout.

Ответ №1:

Создайте изображение с 9 участками для внешней границы. Используйте это в качестве фонового ресурса, и это даст вам закругленные углы со сплошной границей. Для разделителей вы можете создать простой вид и иметь другой фоновый ресурс, представляющий собой простое изображение того же цвета, что и граница в 9-патче.

 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              android:layout_width="fill_parent"
              android:layout_height="fill_parent"
        android:orientation="vertical">

    <LinearLayout
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:background="@drawable/roundedborder"
            android:orientation="vertical">

        <!-- Put Saved Searches display code here.  Probably LinearLayout/horizonal -->
        <TextView
                android:layout_width="fill_parent"
                android:layout_height="1dp"
                android:background="@drawable/simpleborder"
                android:layout_margin="3dp"/> <!-- Spacer! -->

        <!-- Put Favorite sellers display code here.  Probably LinearLayout/horizonal -->

    </LinearLayout>

</LinearLayout>
  

Комментарии:

1. Спасибо, кажется, это самый простой способ!

Ответ №2:

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

 android:layout_marginBottom="1dp"
  

Комментарии:

1. @downvoter, не хочешь объяснить?, я объяснял альтернативу для представления с высотой 1dp.

Ответ №3:

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

Если вы используете ListView с ListAdapter, то при переопределении getView(int position, View convertView, ViewGroup parent) определите, из position какого представления должно быть возвращено, и верните его. Вы можете изменить отступы и поля представления, прежде чем возвращать его.

Кроме того, будет более эффективно, если вы переопределите getItemViewType(int position) и вернете постоянное представление типа представления для определенной позиции, чтобы Android мог повторно использовать представления, и вам не придется каждый раз раздувать новый или изменять атрибуты.

Комментарии:

1. Я пытаюсь использовать представления внутри LinearLayout. Но я оставлю этот ответ для будущих разработок, спасибо!