Мені потрібно додати, щоб додати ListView зі складним фоном елементів: різний для парних / непарних та закруглених кутів зверху та знизу. Це виглядає так:
Я реалізував усі ці речі за допомогою рівня-списку, але я хочу зробити ще одну річ. Тепер нижній елемент знаходиться внизу екрана. Краще додати трохи місця.
Я не хочу додавати нижнє поле до ListView, мені потрібно поле лише для останнього елемента.
Я бачу, як це зробити:
Нижній колонтитул
Своєрідний хак - додати нижній колонтитул із порожнім TextView до ListView. Але колонтитули - це досить нестабільні речі, вони зазвичай зникають після notifyDataSetChanged, і немає можливості повернути їх назад
Зображення з прозорими пікселями
Я попросив дизайнера додати прозорі пікселі до нижнього фонового ресурсу. На жаль, у цьому випадку вертикальне центрування повністю порушено. Наприклад, є 9patch, такий:
І макет такий:
<?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"
>
<!-- View with background with transparent pixels on bottom -->
<LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content"
android:id="@+id/item"
android:background="@drawable/some_bgr"
android:padding="10dp"
>
<TextView android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1"
android:text="Title"
android:layout_gravity="center"
android:textSize="18sp"
/>
<TextView android:layout_width="wrap_content" android:layout_height="wrap_content"
android:text="Detail"
android:layout_gravity="center"
android:textSize="18sp"
/>
</LinearLayout>
<!-- Just for marking place took by view -->
<FrameLayout android:layout_width="match_parent" android:layout_height="match_parent"
android:layout_below="@id/item"
android:background="#88ff55"
/>
</RelativeLayout>
Результат:
Як бачите, центрування не працює. На жаль. (До речі, якщо вказати цей 9-патч як фон для TextView, центрування працює добре. Якщо ви знаєте будь-яку статтю, яка пояснює це, будь ласка, повідомте мене.)
Додайте нижнє поле до останнього елемента в реалізації адаптера
Це має спрацювати, але з невідомої причини я все ще не можу змусити це працювати. Мені не подобається такий спосіб, тому що я не люблю змінювати розміри в коді.
Тому
Уже є уявний спосіб - створити якийсь XML, який можна малювати з певними растровими зображеннями та полями. Відповідно до концепції малюнків, це повинно бути можливим, але я не можу знайти реалізації. Може хтось знає?
Будь-які інші ідеї?