1

リストビューと選択したアイテムに奇妙な問題があります。アイテムを選択してリストをスクロールするまで、すべて正常に機能します。高速スクロールして選択したアイテムが表示されなくなった場合、選択したアイテムの背景色は、2 つの行の間であっても、スクロール中に表示されたままになります。これは私のリストビュー XML です:

    <ListView
    android:id="@+id/my_id"
    android:layout_width="match_parent"
    android:layout_height="fill_parent"
    android:cacheColorHint="@android:color/transparent"
    android:drawSelectorOnTop="false"
    android:listSelector="@android:color/holo_blue_light"
    android:fastScrollEnabled="true"
    android:scrollbars="vertical"
    android:scrollingCache="false" />

これは私のアダプターです:

@Override
public View getView(int position, View convertView, ViewGroup parent) {
    ImpiantiCercatiViewHolder icvh;


    if (convertView == null) {
        LayoutInflater inflater = ((Activity) context).getLayoutInflater();
        convertView = inflater.inflate(R.layout.ricerca_impianti_list_adapter, null);
        icvh = new ImpiantiCercatiViewHolder();
        icvh.sigla = (TextView) convertView.findViewById(R.id.txv_impiantiSigla);
        icvh.tipo = (TextView) convertView.findViewById(R.id.txv_impianti_tipo);
        icvh.denDitta = (TextView) convertView.findViewById(R.id.txv_impianti_denominazione_ditta);
        icvh.indDitta = (TextView) convertView.findViewById(R.id.txv_impianti_indirizzo_ditta);
        icvh.dataScad = (TextView) convertView.findViewById(R.id.txv_impianti_data_scadenza);
        convertView.setTag(icvh);
    } else {
        icvh = (ImpiantiCercatiViewHolder) convertView.getTag();
    }
    Impianto i = impianti.get(position);
    if (i != null) {
        icvh.tipo.setText(VimpUtils.ritornaSiglaTipoImpianto(i.getTipoImpianto()));
        icvh.sigla.setText(i.getSigla() + "-" + i.getNumero() + "-" + i.getAnno());
        icvh.denDitta.setText(i.getDenominazioneDitta());
        icvh.indDitta.setText(i.getIndirizzoDitta() + " - " + i.getComuneDitta());
        icvh.dataScad.setText(df.format(i.getDataScadenzaVerifica()));
    }
    return convertView;
}   

static class ImpiantiCercatiVi`enter code here`ewHolder {
    TextView sigla;
    TextView tipo;
    TextView denDitta;
    TextView indDitta;
    TextView dataScad;
}

これは私のアダプターxmlです:

<LinearLayout 
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center_vertical"
android:orientation="horizontal" >

<ImageView
    android:id="@+id/img_lista_impianto"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center_vertical"
    android:src="@drawable/ic_impianto_dark" />

<TextView
    android:id="@+id/txv_impiantiSigla"
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:layout_weight="2"
    android:textAppearance="@style/bigTextBlack" />

<TextView
    android:id="@+id/txv_impianti_tipo"
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:layout_weight="1"
    android:textAppearance="@style/bigTextBlack" />

<TextView
    android:id="@+id/txv_impianti_data_scadenza"
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:layout_weight="2"
    android:textAppearance="@style/bigText" />

<TextView
    android:id="@+id/txv_impianti_denominazione_ditta"
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:layout_weight="4"
    android:textAppearance="@style/bigText" />

<TextView
    android:id="@+id/txv_impianti_indirizzo_ditta"
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:layout_weight="3"
    android:gravity="right"
    android:textAppearance="@style/bigText" />

編集: ここに問題のある画面があります。

4

1 に答える 1