Tôi cần thêm để thêm ListView với nền các mục phức tạp: khác nhau cho các góc chẵn / lẻ và tròn ở trên cùng và dưới cùng. Nó trông như thế này:
Tôi đã triển khai tất cả những thứ này thông qua danh sách cấp, nhưng còn một điều nữa tôi muốn làm. Bây giờ mục dưới cùng ở gần cuối màn hình. Tốt hơn là thêm một số không gian.
Tôi không muốn thêm ký quỹ dưới cùng vào ListView, tôi chỉ cần ký quỹ cho mục cuối cùng.
Những cách tôi thấy để làm điều này:
Chân trang
Một kiểu hack - thêm chân trang với TextView trống vào ListView. Nhưng footer là thứ khá không ổn định, chúng thường biến mất sau khi InformDataSetChanged và không có cách nào để lấy lại chúng
Hình ảnh có pixel trong suốt
Tôi đã yêu cầu nhà thiết kế thêm các pixel trong suốt vào tài nguyên nền dưới cùng. Thật không may, trong trường hợp này, căn giữa theo chiều dọc bị phá vỡ hoàn toàn. Ví dụ, có 9patch như thế này:
Và bố cục như thế này:
<?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>
Kết quả:
Như bạn thấy, căn giữa không hoạt động. Không may. (BTW, nếu chỉ định 9patch này làm nền cho TextView, căn giữa hoạt động tốt. Nếu bạn biết bất kỳ bài viết nào giải thích điều này, vui lòng cho tôi biết.)
Thêm lề dưới vào mục cuối cùng trong triển khai Bộ điều hợp
Điều đó sẽ hoạt động, nhưng không rõ lý do tôi vẫn không thể làm cho nó hoạt động. Tôi không thích cách này, vì tôi không thích sửa đổi kích thước trong mã.
Vì thế
Đã có một cách tưởng tượng - xây dựng một số XML có thể vẽ được với bitmap và lề cụ thể. Theo khái niệm khả thi, điều đó có thể xảy ra, nhưng tôi không thể tìm thấy cách triển khai. Có thể ai đó biết?
Bất kỳ ý tưởng khác?