CFSDN nhấn mạnh vào giá trị tạo ra nguồn mở và chúng tôi cam kết xây dựng nền tảng chia sẻ tài nguyên để mọi nhân viên CNTT có thể tìm thấy thế giới tuyệt vời của bạn tại đây.
Bài viết trên blog CFSDN này Android triển khai ListView để đồng thời đặt nền khi nhấp chuột và nền sau khi nhấp chuột và thả ra. Nếu bạn quan tâm đến bài viết này, hãy nhớ thích nó.
Ví dụ trong bài viết này mô tả cách triển khai Android thiết lập nền khi nhấp chuột và nền sau khi nhả nhấp chuột cho ListView cùng một lúc. Chia sẻ cho mọi người tham khảo nhé. Phân tích cụ thể như sau:
Hiệu quả cần đạt được ở đây là, .
(1) Sẽ có nền được chỉ định khi nhấp vào một mục trong ListView.
(2) Sau khi buông tay, mục vừa nhấn vào cũng sẽ có nền được chỉ định.
Việc triển khai (1) rất đơn giản: chỉ cần đặt listSelector cho ListView trong xml.
Sao chép mã Mã này như sau:
android:id="@+id/pop_listview_left"
android:layout_width="phù hợp với cha mẹ"
android:layout_height="wrap_content"
android:scrollbars="không có"
android:divider="@color/popup_left_bg"
android:dividerHeight="1dp"
android:listSelector="@color/popup_right_bg"
android:scrollingCache="sai"
/>
。
Cách thực hiện (2) cũng rất đơn giản, tự động thay đổi hình nền trong adapter:
Sao chép mã Mã này như sau:
nếu (vị trí == vị trí đã chọn){
convertView.setBackgroundResource(R.color.left_selected);
}khác{
convertView.setBackgroundResource(R.color.left_normal);
}
Và cập nhật kịp thời Vị trí đã chọn trong sự kiện nhấp chuột của ListView
Sao chép mã Mã này như sau:
leftLV.setOnItemClickListener(AdapterView.OnItemClickListener mới() {
@Ghi đè
public void onItemClick(AdapterView> parent, View view, int position, long id) {
//cập nhật màu nền
Bộ điều hợp FirstClassAdapter = (FirstClassAdapter) (parent.getAdapter());
adapter.setSelectedPosition(vị trí);
bộ điều hợp. thông báoDataSetChanged();
}
});
。
Tuy nhiên, có một vấn đề nảy sinh: sau khi thiết lập (2), tác dụng của (1) không còn nữa! ! ! Điều này là do các cài đặt.
Sao chép mã Mã này như sau:
convertView.setBackgroundResource(R.color.left_selected);
Khi đó, màu được chỉ định trong listSelector ở (1) sẽ bị ghi đè.
。
Có hai giải pháp:
(một) .
Thay đổi nền màu đồng nhất của ConvertView thành bộ chọn và đặt màu của nó khi được nhấp vào thành trong suốt (sao cho màu của listSelector bên dưới được hiển thị). Sau đây là selector_left_normal.xml và selector_left_selected.xml.
Sao chép mã Mã này như sau:
。
Sau đó thay đổi mã ở (2) thành:
Sao chép mã Mã này như sau:
nếu (vị trí == vị trí đã chọn){
convertView.setBackgroundResource(R.drawable.selector_left_selected);
}khác{
convertView.setBackgroundResource(R.drawable.selector_left_normal);
}
。
(hai) .
Tham khảo (1), loại bỏ thuộc tính listSelector của ListView và sao chép màu của nó sang hai bộ chọn ở trên để thay thế màu trong suốt.
Nghĩa là, mỗi lần sau khi nhấp vào một mục của ListView, khi đặt màu nền, .
(a) Nếu mục hiện đang được chọn, hãy đặt trực tiếp nó thành một màu nhất định.
(b) Mặt khác, đặt màu của nó thành bộ chọn và chỉ định màu khi được nhấp và không được nhấp tương ứng trong bộ chọn.
Vấn đề đã được giải quyết thành công.
Tôi hy vọng bài viết này sẽ hữu ích cho việc thiết kế lập trình Android của mọi người.
Cuối cùng, bài viết này về cách Android thực hiện cài đặt nền khi nhấp chuột và nền sau khi nhấp và thả cho ListView cùng một lúc nếu bạn muốn biết thêm về cách thực hiện cài đặt nền của Android khi nhấp và sau khi nhấp và cho phép. truy cập ListView cùng lúc. Đối với nội dung nền, vui lòng tìm kiếm các bài viết CFSDN hoặc tiếp tục duyệt các bài viết liên quan. Tôi hy vọng bạn sẽ ủng hộ blog của tôi trong tương lai! .
Tôi là một lập trình viên xuất sắc, rất giỏi!