我有一個片段持有recyclerview,當我點擊一個項目,我希望其中的文字瀏覽淡出爲現場過渡到一個活動。當我點擊返回按鈕回到片段時,recyclerview項目中的文本應該淡入。問題是,這隻適用於回收站視圖中的第一項。對於任何其他項目,文本淡出,但在回到片段時保持不可見狀態。在適配器的onBindViewHolder文字淡入與轉換管理器不工作與RecyclerView
toggleVisibility方法調用:
holder.itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
String imageTransitionName = context.getString(R.string.timeline_item_transition_image);
Pair imagePair = new Pair<>(view.findViewById(R.id.timeline_image_framelayout), imageTransitionName);
ActivityOptionsCompat optionsCompat =
ActivityOptionsCompat.makeSceneTransitionAnimation(mUpcomingEventsFragment.getActivity(),
imagePair);
toggleVisibility(holder.itemView, false);
view.getContext().startActivity(EventDetailActivity.newIntent(context,
(Event) mTimelineItemList.get(holder.getAdapterPosition())), optionsCompat.toBundle());
}
});
而且隨着的TransitionManager的褪色的方法:
public void toggleVisibility(View view, boolean visible) {
TransitionManager.beginDelayedTransition((ViewGroup) view, new Fade());
TextView timeText = (TextView) view.findViewById(R.id.event_time);
TextView titleText = (TextView) view.findViewById(R.id.event_title);
timeText.setVisibility(visible ? View.VISIBLE : View.INVISIBLE);
titleText.setVisibility(visible ? View.VISIBLE : View.INVISIBLE);
}
我打電話的toggleVisibility
方法時的片段簡歷,mUpcomingEventsAdapter.toggleVisibility(mRecyclerView, true);
但我的問題是我只是不確定如何在回到片段時從recyclerview中正確設置選定項目的可見性。
謝謝,這看起來像一個很好的解決方案。我最終做的是在適配器中添加一個public getPosition()方法,以便從onBindViewHolder獲取位置。在片段中,我可以通過使用recyclerview.getLayoutManager()。findViewByPosition(int position)來切換ViewHolder的可見性。不知道這是否太昂貴,所以我也會給你一個建議,看看哪些東西最好。再次感謝! – TonyKazanjian