【问题标题】:Can the RecyclerView scroll with the rest of the fragment layouts?RecyclerView 可以与其余的片段布局一起滚动吗?
【发布时间】:2021-09-13 12:23:21
【问题描述】:

我已经在一个名为 TvShowEpisodeDetails 的活动中设置了一个带有 ViewPagerRecyclerView 适配器,它运行良好但有一个问题,RecyclerView 的布局在片段中上下滚动时是固定的(TvShowEpisodeDetailsFragment) .但我希望它与他们一起滚动。

RecyclerViewViewPager 都设置在 viewpager_with_toolbar_overlay.xml 布局中,并且都已在 Activity 中设置。

TvShowEpisodeDetailsFragment 是属于活动类TvShowEpisodeDetails 的片段类,片段可以创建电视节目季所能提供的尽可能多的剧集。

当然,如果我在片段中设置RecyclerView 适配器,这个问题就会消失,但我会遇到不可修复的突出显示和滚动问题,这就是为什么我在活动中设置它,因为它不会给出这些问题。

我需要让它在活动中以某种方式工作。

我的目标是 RecyclerViewViewPager 必须在相同的布局 XML 文件中,并且它们都必须在活动或片段类中

是否可以使 RecyclerView 与其余片段布局一起滚动?

是否可以通过编程方式完成?

这是活动

public class TvShowEpisodeDetails extends MizActivity{

    
    @Override
    protected int getLayoutResource() {
        return R.layout.viewpager_with_toolbar_overlay;
    }


    @Override
    public void onCreate(Bundle savedInstanceState) {
        mBus = MizuuApplication.getBus();
        super.onCreate(savedInstanceState);

        // Set theme
        setTheme(R.style.Mizuu_Theme_NoBackground);

       


        // setting episodeslist
        final ArrayList<PlanetModel> episodeslist = new ArrayList<>();
        for(TvShowEpisode e : mEpisodes){
            episodeslist.add(new PlanetModel(e.mEpisode));
        }


        // setting RecyclerView
        mEpisodesList = (RecyclerView) findViewById(R.id.episodesLIST);


        // Setting LinearLayoutManager
        LinearLayoutManager layoutManager
                = new LinearLayoutManager(this.getApplicationContext(), LinearLayoutManager.HORIZONTAL, false);
        //mEpisodesList.setLayoutManager(new LinearLayoutManager(mContext));
        mEpisodesList.setLayoutManager(layoutManager);


        // Setting RecyclerView Adapter
        PlanetAdapter.OnItemClickListener indicatorCallback = new PlanetAdapter.OnItemClickListener() {
            @Override
            public void onItemClick(String item) {
                SharedPreferences getPref = getContext().getSharedPreferences("PlanetAdapter", Context.MODE_PRIVATE);
                int pos = getPref.getInt("newPosition", 0);
                mViewPager.setCurrentItem(pos,false);
            }
        };
        final PlanetAdapter planetAdapter = new PlanetAdapter(episodeslist,indicatorCallback);
        mEpisodesList.setAdapter(planetAdapter);


        // Setting ViewPager
        mViewPager = (ViewPager) findViewById(R.id.awesomepager);
        mViewPager.setAdapter(new TvShowEpisodeDetailsAdapter(getSupportFragmentManager()));
        mViewPager.setOnPageChangeListener(new ViewPager.SimpleOnPageChangeListener() {
            @Override
            public void onPageSelected(int position) {
                planetAdapter.setSelectedIndex(position);
                planetAdapter.notifyDataSetChanged();
                mEpisodesList.smoothScrollToPosition(position);
                //mEpisodesList.scrollToPosition(position);
                for (int i=0; i<episodeslist.size(); i++)
                {
                    episodeslist.get(i).setPlanetSelected(false);
                }
                episodeslist.get(position).setPlanetSelected(true);
                ViewUtils.updateToolbarBackground(TvShowEpisodeDetails.this, mToolbar, 0, mEpisodes.get(position).getTitle(), Color.TRANSPARENT);
            }
        });

        if (savedInstanceState != null) {
            mViewPager.setCurrentItem(savedInstanceState.getInt("tab", 0));
        } else {
            for (int i = 0; i < mEpisodes.size(); i++) {
                if (mEpisodes.get(i).getSeason().equals(MizLib.addIndexZero(mSeason)) && mEpisodes.get(i).getEpisode().equals(MizLib.addIndexZero(mEpisode))) {
                    mViewPager.setCurrentItem(i);
                    break;
                }
            }
        }
    }
}

viewpager_with_toolbar_overlay

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout  xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/layout"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

    <android.support.v4.view.ViewPager
        android:id="@+id/awesomepager"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />

    <ProgressBar
        android:id="@+id/progressbar"
        style="?android:attr/progressBarStyleLarge"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:visibility="gone" />

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="40dp"
        android:background="#068006"
        android:layout_marginTop="450dp"
        >

        <android.support.v7.widget.RecyclerView
            android:id="@+id/episodesLIST"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:orientation="horizontal"
            android:scrollbars="horizontal" />
    </LinearLayout>

    <include layout="@layout/toolbar_layout" />

</FrameLayout>

这是在片段类的onCreateView 中膨胀的片段的XML 布局

episode_details.xml

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@color/abc_input_method_navigation_guard">

    <com.miz.views.ObservableScrollView
        android:id="@+id/observableScrollView"
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical">

            <RelativeLayout
                android:id="@+id/relativeLayout1"
                android:layout_width="match_parent"
                android:layout_height="wrap_content">

                <ImageView
                    android:id="@+id/episodePhoto"
                    android:layout_width="match_parent"
                    android:layout_height="@dimen/backdrop_portrait_height"
                    android:scaleType="centerCrop"
                    android:src="@drawable/bg" />

                <com.melnykov.fab.FloatingActionButton
                    android:id="@+id/fab"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_below="@+id/episodePhoto"
                    android:layout_alignParentEnd="false"
                    android:layout_alignParentRight="true"
                    android:layout_marginTop="@dimen/content_details_fab_negative_margin"
                    android:layout_marginRight="@dimen/content_details_baseline_margin"
                    android:src="@drawable/ic_play_arrow_white_36dp"
                    app:fab_colorNormal="#666"
                    app:fab_type="mini" />

                <LinearLayout
                    android:id="@+id/linearLayout"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_below="@+id/fab"
                    android:layout_marginLeft="@dimen/content_details_baseline_margin"
                    android:layout_marginTop="@dimen/content_details_title_margin_top"
                    android:layout_marginRight="@dimen/content_details_baseline_margin"
                    android:layout_toLeftOf="@+id/fab"
                    android:orientation="vertical">

                    <TextView
                        android:id="@+id/movieTitle"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:ellipsize="end"
                        android:maxLines="3"
                        android:textAppearance="?android:attr/textAppearanceLarge"
                        android:textColor="#FFFFFF"
                        android:textSize="@dimen/content_details_title" />

                    <TextView
                        android:id="@+id/textView7"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_marginTop="@dimen/content_details_very_small_margin"
                        android:layout_marginBottom="@dimen/content_details_baseline_margin"
                        android:textAppearance="?android:attr/textAppearanceLarge"
                        android:textColor="#FFFFFF"
                        android:textSize="@dimen/content_details_subheader"
                        android:textStyle="bold|italic" />
                </LinearLayout>

            </RelativeLayout>

            <LinearLayout
                android:id="@+id/details_area"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:background="#666"
                android:baselineAligned="false"
                android:elevation="1dp"
                android:minHeight="@dimen/content_details_large_margin"
                android:orientation="horizontal"
                android:paddingLeft="@dimen/content_details_baseline_margin"
                android:paddingTop="@dimen/content_details_small_margin"
                android:paddingRight="@dimen/content_details_baseline_margin"
                android:paddingBottom="@dimen/content_details_small_margin">

                <LinearLayout
                    android:layout_width="0dp"
                    android:layout_height="wrap_content"
                    android:layout_gravity="center"
                    android:layout_weight="1"
                    android:gravity="center_horizontal"
                    android:orientation="vertical">

                    <TextView
                        android:id="@+id/TextView03"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:ellipsize="end"
                        android:gravity="center_horizontal"
                        android:lines="1"
                        android:maxLines="1"
                        android:text="@string/detailsAirDate"
                        android:textAppearance="?android:attr/textAppearanceMedium"
                        android:textSize="@dimen/content_details_area_subheader" />

                    <TextView
                        android:id="@+id/textReleaseDate"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:gravity="center_horizontal"
                        android:textAppearance="?android:attr/textAppearanceMedium"
                        android:textColor="#FFFFFF"
                        android:textSize="@dimen/content_details_area_header"
                        android:textStyle="bold" />
                </LinearLayout>

                <LinearLayout
                    android:layout_width="0dp"
                    android:layout_height="wrap_content"
                    android:layout_gravity="center"
                    android:layout_weight="1"
                    android:gravity="center_horizontal"
                    android:orientation="vertical">

                    <TextView
                        android:id="@+id/textView61"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:ellipsize="end"
                        android:gravity="center_horizontal"
                        android:lines="1"
                        android:maxLines="1"
                        android:text="@string/detailsRating"
                        android:textAppearance="?android:attr/textAppearanceMedium"
                        android:textSize="@dimen/content_details_area_subheader" />

                    <TextView
                        android:id="@+id/textView12"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:gravity="center_horizontal"
                        android:textAppearance="?android:attr/textAppearanceMedium"
                        android:textColor="#FFFFFF"
                        android:textSize="@dimen/content_details_area_header"
                        android:textStyle="bold" />
                </LinearLayout>
            </LinearLayout>



            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:orientation="vertical"
                android:padding="@dimen/content_details_baseline_margin">

                <TextView
                    android:id="@+id/textView2"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_marginBottom="@dimen/content_details_baseline_margin"
                    android:textAppearance="?android:attr/textAppearanceMedium"
                    android:textColor="#FFFFFF"
                    android:textSize="@dimen/content_details_body_text" />

                <TextView
                    android:id="@+id/director"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_marginBottom="12dp"
                    android:drawableLeft="@drawable/ic_movie_white_24dp"
                    android:drawablePadding="@dimen/movie_details_padding"
                    android:focusable="false"
                    android:gravity="center_vertical"
                    android:textAppearance="?android:attr/textAppearanceMedium"
                    android:textColor="#f0f0f0"
                    android:textSize="@dimen/content_details_body_text" />

                <TextView
                    android:id="@+id/writer"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_marginBottom="12dp"
                    android:drawableLeft="@drawable/ic_edit_white_24dp"
                    android:drawablePadding="@dimen/movie_details_padding"
                    android:focusable="false"
                    android:gravity="center_vertical"
                    android:textAppearance="?android:attr/textAppearanceMedium"
                    android:textColor="#f0f0f0"
                    android:textSize="@dimen/content_details_body_text" />

                <TextView
                    android:id="@+id/guest_stars"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_marginBottom="12dp"
                    android:drawableLeft="@drawable/ic_people_white_24dp"
                    android:drawablePadding="@dimen/movie_details_padding"
                    android:focusable="false"
                    android:gravity="center_vertical"
                    android:textAppearance="?android:attr/textAppearanceMedium"
                    android:textColor="#f0f0f0"
                    android:textSize="@dimen/content_details_body_text" />

                <TextView
                    android:id="@+id/textView3"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:drawableLeft="@drawable/ic_folder_open_white_24dp"
                    android:drawablePadding="@dimen/movie_details_padding"
                    android:gravity="center_vertical"
                    android:textAppearance="?android:attr/textAppearanceMedium"
                    android:textColor="#FFFFFF"
                    android:textSize="@dimen/content_details_body_text" />
            </LinearLayout>

        </LinearLayout>

    </com.miz.views.ObservableScrollView>

    <FrameLayout
        android:id="@+id/progress_layout"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="@drawable/bg"
        android:visibility="gone">

        <ProgressBar
            android:id="@+id/progressBar1"
            style="?android:attr/progressBarStyleLarge"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center" />
    </FrameLayout>

</FrameLayout>

更新

片段

@SuppressLint("InflateParams") public class TvShowEpisodeDetailsFragment extends Fragment {




    public TvShowEpisodeDetailsFragment() {}

    public static TvShowEpisodeDetailsFragment newInstance(String showId, int season, int episode) {
        TvShowEpisodeDetailsFragment pageFragment = new TvShowEpisodeDetailsFragment();
        Bundle bundle = new Bundle();
        bundle.putString("showId", showId);
        bundle.putInt("season", season);
        bundle.putInt("episode", episode);
        pageFragment.setArguments(bundle);
        return pageFragment;
    }

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        setRetainInstance(true);
        setHasOptionsMenu(true);

        mContext = getActivity();

        mBus = MizuuApplication.getBus();

        mShowFileLocation = PreferenceManager.getDefaultSharedPreferences(getActivity()).getBoolean(SHOW_FILE_LOCATION, true);

        mPicasso = MizuuApplication.getPicassoDetailsView(getActivity());

        mMediumItalic = TypefaceUtils.getRobotoMediumItalic(mContext);
        mMedium = TypefaceUtils.getRobotoMedium(mContext);
        mCondensedRegular = TypefaceUtils.getRobotoCondensedRegular(mContext);

        mDatabaseHelper = MizuuApplication.getTvEpisodeDbAdapter();

        LocalBroadcastManager.getInstance(mContext).registerReceiver(mBroadcastReceiver,
                new IntentFilter(LocalBroadcastUtils.UPDATE_TV_SHOW_EPISODE_DETAILS_OVERVIEW));

        loadEpisode();
    }

    @Override
    public void onDestroy() {
        super.onDestroy();

        LocalBroadcastManager.getInstance(mContext).unregisterReceiver(mBroadcastReceiver);
    }

    private BroadcastReceiver mBroadcastReceiver = new BroadcastReceiver() {
        @Override
        public void onReceive(Context context, Intent intent) {
            loadEpisode();
            loadData();
        }
    };

    private void loadEpisode() {
        if (!getArguments().getString("showId").isEmpty() && getArguments().getInt("season") >= 0 && getArguments().getInt("episode") >= 0) {
            Cursor cursor = mDatabaseHelper.getEpisode(getArguments().getString("showId"), getArguments().getInt("season"), getArguments().getInt("episode"));

            if (cursor.moveToFirst()) {
                mEpisode = new TvShowEpisode(getActivity(),
                        cursor.getString(cursor.getColumnIndex(DbAdapterTvShowEpisodes.KEY_SHOW_ID)),
                        cursor.getString(cursor.getColumnIndex(DbAdapterTvShowEpisodes.KEY_EPISODE_TITLE)),
                        cursor.getString(cursor.getColumnIndex(DbAdapterTvShowEpisodes.KEY_EPISODE_PLOT)),
                        cursor.getString(cursor.getColumnIndex(DbAdapterTvShowEpisodes.KEY_SEASON)),
                        cursor.getString(cursor.getColumnIndex(DbAdapterTvShowEpisodes.KEY_EPISODE)),
                        cursor.getString(cursor.getColumnIndex(DbAdapterTvShowEpisodes.KEY_EPISODE_AIRDATE)),
                        cursor.getString(cursor.getColumnIndex(DbAdapterTvShowEpisodes.KEY_EPISODE_DIRECTOR)),
                        cursor.getString(cursor.getColumnIndex(DbAdapterTvShowEpisodes.KEY_EPISODE_WRITER)),
                        cursor.getString(cursor.getColumnIndex(DbAdapterTvShowEpisodes.KEY_EPISODE_GUESTSTARS)),
                        cursor.getString(cursor.getColumnIndex(DbAdapterTvShowEpisodes.KEY_EPISODE_RATING)),
                        cursor.getString(cursor.getColumnIndex(DbAdapterTvShowEpisodes.KEY_HAS_WATCHED)),
                        cursor.getString(cursor.getColumnIndex(DbAdapterTvShowEpisodes.KEY_FAVOURITE))
                );

                mEpisode.setFilepaths(MizuuApplication.getTvShowEpisodeMappingsDbAdapter().getFilepathsForEpisode(
                        cursor.getString(cursor.getColumnIndex(DbAdapterTvShowEpisodes.KEY_SHOW_ID)),
                        cursor.getString(cursor.getColumnIndex(DbAdapterTvShowEpisodes.KEY_SEASON)),
                        cursor.getString(cursor.getColumnIndex(DbAdapterTvShowEpisodes.KEY_EPISODE))
                ));
            }
            cursor.close();
        }
    }


    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        return inflater.inflate(R.layout.episode_details, container, false);
    }


    @Override
    public void onViewCreated(final View view, Bundle savedInstanceState) {
        super.onViewCreated(view, savedInstanceState);

        mBackdrop = (ImageView) view.findViewById(R.id.imageBackground);
        mEpisodePhoto = (ImageView) view.findViewById(R.id.episodePhoto);
        mDetailsArea = view.findViewById(R.id.details_area);

        mTitle = (TextView) view.findViewById(R.id.movieTitle);
        mSeasonEpisodeNumber = (TextView) view.findViewById(R.id.textView7);
        mDescription = (TextView) view.findViewById(R.id.textView2);
        mFileSource = (TextView) view.findViewById(R.id.textView3);
        mAirDate = (TextView) view.findViewById(R.id.textReleaseDate);
        mRating = (TextView) view.findViewById(R.id.textView12);
        mDirector = (TextView) view.findViewById(R.id.director);
        mWriter = (TextView) view.findViewById(R.id.writer);
        mGuestStars = (TextView) view.findViewById(R.id.guest_stars);
        mScrollView = (ObservableScrollView) view.findViewById(R.id.observableScrollView);
        mFab = (FloatingActionButton) view.findViewById(R.id.fab);

        mFab.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                ViewUtils.animateFabJump(v, new SimpleAnimatorListener() {
                    @Override
                    public void onAnimationEnd(Animator animation) {
                        play();
                    }
                });
            }
        });  
        
        ...

    }
    
    ...

}

【问题讨论】:

  • 与您的问题没有真正的关系,但您似乎使用的是非常旧且过时的依赖项,您应该考虑使用 androidX 依赖项
  • 谢谢你,你说得对,我肯定会升级,但现在我真的卡住了。
  • 您的recyclerview 不在viewPager 的片段内。和你滚动的片段。如果您希望 recyclerView 随视图滚动,请将其添加到片段中。
  • 谢谢,你说得对,我已经这样做了,但是我遇到了 recyclerView 的项目突出显示问题,所以我别无选择,只能将它移到活动中。

标签: java android android-fragments android-recyclerview android-viewpager


【解决方案1】:

我已经在一个名为 TvShowEpisodeDetails 的活动中设置了一个带有 ViewPagerRecyclerView 适配器,它运行良好但有一个问题,RecyclerView 的布局在片段中上下滚动时是固定的(TvShowEpisodeDetailsFragment) .但我希望它与他们一起滚动。

很难在ViewPager 页面片段之外使用RecyclerView;因为当您在页面片段和独立(即活动)RecyclerView 之间向上/向下滚动页面(或滑动到下一页/上一页时)时,您无法同步和链接触摸/运动事件。即使这样也不会顺利。

因此,RecyclerView 应该是 ViewPager 页面的一部分。

如果我在片段中设置 RecyclerView 适配器,这个问题当然会消失,但我会遇到无法修复的突出显示和滚动问题

所以,现在在ViewPager 片段中添加RecyclerView 的问题是当您单击任何项​​目或将ViewPager 滑动到右/左页面时,RecyclerView 项目的突出显示问题。

但是,主要问题是每个页面都有一个 RecyclerView 实例,即如果您有 5 个页面,那么您就有 5 个 RecyclerView。

因此,仅在 RecyclerView 适配器类中跟踪突出显示很麻烦。因此,仅使用 OnClickListeners 进行操作将遇到将这些 RecyclerView 和适配器实例链接在一起以更新其突出显示项的问题。

所以,一个更简单的方法是向RecyclerView 适配器传递一个带有所选项目(绝对等于当前ViewPager 页面位置)的参数。

然后检查onBindViewHolder() 如果position 等于传入的值,则突出显示该项目;否则保留原色。

所以,把它包装成行动:

  • 将适配器构造函数更改为接受 highlight_position 参数
public PlanetAdapter(ArrayList<PlanetModel> episodeslist, 
                         int highlightedPosition, OnItemClickListener listener)
  • 每当您使用newInstance() 创建 ViewPager 片段时,传入页面片段的当前位置:

所以,在TvShowEpisodeDetails 活动中:

for (int i = 0; i < mEpisodes.size(); i++)
    fragments.add(TvShowEpisodeDetailsFragment
                    .newInstance(mShowId, 
                              Integer.parseInt(mEpisodes.get(i).getSeason()),
                              Integer.parseInt(mEpisodes.get(i).getEpisode()), 
                              i)); // The position

TvShowEpisodeDetailsFragment 片段中,将其注册到片段参数中的字段中:

public static TvShowEpisodeDetailsFragment newInstance(String showId, int season, int episode, int position) { // adding position
    TvShowEpisodeDetailsFragment pageFragment = new TvShowEpisodeDetailsFragment();
    Bundle bundle = new Bundle();

    // trimmed code.

    bundle.putInt("position", position); // <<<< into the bundle
    pageFragment.setArguments(bundle);
    return pageFragment;
}
  • 并在适配器创建中进行设置:
int currentPosition = getArguments().getInt("position");
planetAdapter = new PlanetAdapter(episodeslist, currentPosition, new PlanetAdapter.OnItemClickListener() {
    @Override
    public void onItemClick(final int pos) {
        mCallback.sendText(pos);
    }
});
  • 并将其反映在适配器中以突出显示该项目:
public class PlanetAdapter extends RecyclerView.Adapter<PlanetAdapter.PlanetViewHolder> {

    private final int highlightedPos;
    public PlanetAdapter(ArrayList<PlanetModel> episodeslist, int highlightedPosition, OnItemClickListener listener) {
        this.episodeslist = episodeslist;
        this.listener = listener;
        this.highlightedPos = highlightedPosition; // <<<  set the position
    }

    @Override
    public void onBindViewHolder(PlanetAdapter.PlanetViewHolder vh, final int position) {
        TextView tv = (TextView) vh.itemView;
        PlanetModel planetModel = episodeslist.get(position);
        tv.setText(planetModel.getPlanetName());
        tv.setCompoundDrawablesWithIntrinsicBounds(R.drawable.bg, 0, 0, 0);

        if (highlightedPos == position) { //<<<<< Highlight the item
            vh.itemView.setBackgroundColor(getContext().getResources().getColor(R.color.colorPrimaryLight));
            Log.d("LOG_TAG", "onClick: Highlight item: " + highlightedPos);

        } else {
            vh.itemView.setBackgroundColor(getContext().getResources().getColor(R.color.colorPrimaryDark));
            Log.d("LOG_TAG", "onClick: No highlight: " + highlightedPos);
        }
    }
}

【讨论】:

    猜你喜欢
    • 2021-05-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-01
    • 2012-10-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多