2

私はgetViewでも試しましたが、これは選択した項目を強調表示する必要があります。ここに私のコードです。私はこれに関連しているが、私のために働いていないそれぞれの答えを見てきました。最初の項目の背景色を変更した後、一部の項目の後に別の項目も変更された場合

slots.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
      @Override 
      public void onItemClick(AdapterView<?> parent, View view, final int position, long id) { 
       for(int i=0;i<list.size();i++) 
       { 
        View v=getViewByPosition(i,slots); 

        if(i==position) 
        { 
         v.setBackgroundColor(getResources().getColor(R.color.colorAccent)); 
        } 
        else { 
         v.setBackgroundColor(getResources().getColor(R.color.AppBackground)); 
        } 

       } 

      } 
     }); 
     progress.dismiss(); 
    } 

    public View getViewByPosition(int pos, HorizontalListView listView) { 
     final int firstListItemPosition = listView.getFirstVisiblePosition(); 
     final int lastListItemPosition = firstListItemPosition + listView.getChildCount() - 1; 

     if (pos < firstListItemPosition || pos > lastListItemPosition) { 
      return listView.getAdapter().getView(pos, null, listView); 
     } else { 
      final int childIndex = pos - firstListItemPosition; 
      return listView.getChildAt(childIndex); 
     } 
    } 
+0

アダプターでViewHolderパターンを使用していますか? –

+0

backgndを設定してアダプタクラスでdettする必要がある場合は、 –

+0

[ありがとうすべて] –

答えて

0

ViewView \ RecyclerViewの主な考え方は、Viewの再利用です。だから、あなたが画面上に生きているアイテムをスクロールすると、新しいアイテムに移動しました。 競争相手のリストを含むホルダークラスを作成します。とメソッドバインド、あなたのアダプターモデルに基づいてアイテムの色を設定するときに、yo。 sample

関連する問題