0
TabHost에 포함 된 조각의 목록보기에서 CAB 및 longPressed (선택한) 행의 강조 표시를 구현했습니다. api> 8을 지원합니다.Android : onItemLongClick의 뷰 배경 수정
api 8에서는 목록 항목을 길게 누르면 가끔 잘못된 목록이 강조 표시되는 것을보고 있습니다. 얼마나 많은 행이 목록에 표시되는지에 따라 강조 표시가 작동하는지 여부가 결정됩니다. 배경색 변경을 수행하는 메서드가 전달 된 뷰를 사용하고 position 매개 변수가 실제로 올바르므로 매우 어려운 일입니다.
이 버그는 무엇입니까? 아니면 누락 되었습니까?
listView.setAdapter(
new myAdapter(
inflater,
tvSeason)
);
listView.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
@Override
public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) {
if (mActionMode != null) {
dismissActionMode();
return false;
}
// Start the CAB using the ActionMode.Callback defined above
mActionMode = getSherlockActivity().startActionMode(mActionModeCallback);
view.setSelected(true);
selectedTvEpisode = (TvEpisode)listView.getAdapter().getItem(position);
mActionMode.setTitle(MyApp.getResourceString(R.string.tv_episode_number, selectedTvEpisode.getNumber()));
view.setBackgroundColor(getActivity().getResources().getColor(R.color.lime));
selectedView = view;
return true;
}
});
네, 저는 재활용에 대해 알고 있습니다. 그러나보기가 보이고 사용자가 그것을 보았을 때 재활용되지 않을 것이라고 생각했습니다 ... – JohnRock
아니요,하지만 올바른 접근 방식은 여전히 선택된/데이터면에서 선택을 해제하고 어댑터가 배경 차를 가져 가게합니다. 나는 이것이 당신의 문제를 해결할 것이라고 확신합니다. – SimonSays
나는 당신의 제안 된 접근 방식을 시도했는데, 나는 그것이 올바른 방법임을 동의합니다. 그러나 같은 문제. API 8에서 테스트 하이라이트 된 뷰가 1 또는 2 행만큼 떨어져 있음 – JohnRock