Android ListView 項目の背景色の設定と項目クリックが応答しない解決策

高洛峰
リリース: 2017-01-20 15:23:52
オリジナル
1299 人が閲覧しました

リストビューを使用するときに最も一般的な問題のいくつかを以下に示します。
1. 項目の背景色とクリック色を変更する方法
デフォルトでは、リストビューの項目の背景色は黒で、ユーザーがクリックすると黄色になります。カスタムの背景色に変更する必要がある場合、通常 3 つの方法があります:
1) listSelector を設定する
2) レイアウト ファイルに項目の背景を設定する
3) アダプターの getview に設定する
これら 3 つの方法は次のとおりです。項目のデフォルトの背景色とクリック色の変更については以下で個別に説明しますが、その前にセレクターを記述する必要があります。 drawableはカラーリソースまたは画像リソースとして設定できます。

1) listview

<?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>
ログイン後にコピー

のlistSelectorを設定する 2) listitemのレイアウトファイルにbackground属性を設定する 以下はlistitem

<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>
ログイン後にコピー

のレイアウトファイルです 3)adapter

<?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>
ログイン後にコピー

のgetViewメソッドに設定する 以上です。リストビューの奇数行と偶数行を変更する必要がある場合、3 番目の方法が最も柔軟です。異なるセレクターに設定した場合は、3 番目の方法のみを使用できます。

2. ボタン、チェックボックス、その他のコントロールをクリックしても反応がありません。

listitem にボタンやチェックボックスなどのコントロールが含まれている場合、listitem はデフォルトでフォーカスを失い、その結果、項目のイベントに応答できなくなります。最も一般的な解決策は、listitem のレイアウト ファイルに子孫Focusability 属性を設定することです。

 if(convertView ==null)
 {
     convertView = LayoutInflater.from(context).inflate(R.layout.listitem, null);
 }
 convertView.setBackgroundResource(R.drawable.selector);
ログイン後にコピー

Android ListView の項目の背景色の設定と項目のクリックが応答しない問題の解決策に関するその他の関連記事については、PHP 中国語 Web サイトに注目してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート