다음은 목록 보기를 사용할 때 가장 흔히 발생하는 몇 가지 문제에 대해 설명합니다.
1. 배경색 변경 및 항목 클릭 색상
기본적으로 목록보기 항목의 배경색은 검은색이며, 사용자가 클릭하면 노란색이 됩니다. 사용자 정의 배경색으로 변경해야 하는 경우 일반적으로 세 가지 방법이 있습니다.
1) listSelector 설정
2) 레이아웃 파일에서 항목의 배경 설정
3) 어댑터의 getview에서 이 세 가지 방법은 기본 배경색과 항목의 클릭 색상을 변경할 수 있으며, 아래에서 별도로 설명하겠지만, 그 전에 버튼을 변경하기 전에
<?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_pressed="true" android:drawable="@color/light_blue"></item> <item android:state_pressed="false" android:drawable="@color/sgray"></item> </selector>파일을 작성해야 합니다. 목록보기 항목의 기본 배경색은 선택기로 사용할 수 있습니다. drawable은 색상 리소스 또는 이미지 리소스로 설정할 수 있습니다.
1) listview의 listSelector를 설정합니다
<ListView android:id="@+id/history_list" android:layout_width="fill_parent" android:layout_height="wrap_content" android:divider="#565C5D" android:dividerHeight="3dp" android:listSelector="@drawable/selector" android:cacheColorHint="@android:color/transparent"> </ListView>2) listitem의 레이아웃 파일에 background 속성을 설정합니다. 다음은 listitem
<?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="fill_parent" android:background="@drawable/selector"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="历史记录" android:textColor="#ffffff" android:textSize="20sp" android:layout_centerInParent="true"> </TextView> </RelativeLayout>의 레이아웃 파일입니다. 어댑터
if(convertView ==null) { convertView = LayoutInflater.from(context).inflate(R.layout.listitem, null); } convertView.setBackgroundResource(R.drawable.selector);의 getView 메소드는 클릭 시 항목의 기본 배경색과 배경색을 변경하는 것과 동일한 효과를 얻을 수 있습니다. 세 번째 방법이 가장 유연합니다. 목록 보기의 행을 다른 선택기로 설정해야 하는 경우에도 세 번째 방법만 사용할 수 있습니다.
2. 버튼, 체크박스, 기타 컨트롤을 클릭해도 반응이 없습니다.
목록 항목에 버튼이나 확인란과 같은 컨트롤이 포함된 경우 목록 항목은 기본적으로 포커스를 잃어 항목의 이벤트에 응답할 수 없게 됩니다. 가장 일반적인 해결 방법은 목록 항목의 레이아웃 파일에DescendantFocusability 속성을 설정하는 것입니다.
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="wrap_content" android:layout_height="wrap_content" android:paddingTop="10dp" android:paddingBottom="10dp" android:paddingLeft="5dp" android:paddingRight="5dp" android:descendantFocusability="blocksDescendants"> <CheckBox android:id="@+id/history_item_checkbt" android:layout_height="30dp" android:layout_width="wrap_content" android:layout_centerVertical="true" android:layout_alignParentLeft="true" android:checked="false" > </CheckBox> <ImageView android:id="@+id/history_item_image" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerVertical="true" android:layout_toRightOf="@id/history_item_checkbt" android:background="@drawable/item_icon"> </ImageView> <Button android:id="@+id/history_item_edit_bt" android:layout_alignParentRight="true" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerVertical="true" android:text="编辑" android:textColor="#ffffff" android:textSize="14sp" android:background="@drawable/button_bg"> </Button> <TextView android:id="@+id/history_item_time_tv" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerVertical="true" android:textColor="#565C5D" android:textSize="14sp" android:text="10-01 10:20" android:layout_marginRight="5dp" android:layout_toLeftOf="@id/history_item_edit_bt"> </TextView> <TextView android:id="@+id/history_item_title_tv" android:layout_height="wrap_content" android:layout_width="fill_parent" android:layout_centerVertical="true" android:textColor="#565C5D" android:textSize="14sp" android:text="xxxxxxxxXXXXXXXXXXXXXXXX" android:ellipsize="end" android:maxLines="1" android:layout_toRightOf="@id/history_item_image" android:layout_toLeftOf="@id/history_item_time_tv" android:layout_marginLeft="3dp"> </TextView> </RelativeLayout>Android ListView의 항목 배경색 설정 및 항목 클릭 무반응에 대한 해결 방법에 대한 더 많은 관련 기사를 보려면 PHP 중국어 웹사이트를 주목하세요!