Android RecyclerView选择第一个Item

时间:2015-05-11 12:40:52

标签: android selection android-recyclerview highlighting

我正在使用RecyclerView来实现NavigationDrawer。

我点击活动有效,但我无法弄清楚如何在应用程序启动和关注后选择第一个项目,即使未显示抽屉,也会保持所选项目突出显示。

所有我能找到的都是RecyclerView中的多选。

1 个答案:

答案 0 :(得分:3)

我实际上只是在我正在开发的应用中实现了这一点。所以这种方法有效:

首先创建一个变量来跟踪适配器顶部的当前所选位置:

private int selectedItem;

然后在您的Adapter构造函数中启动您想要的selectedItem值:

public NavDrawerMenuListAdapter(Context context, List<NavDrawerItem> data, NavDrawerMenuListViewHolder.NavDrawerMenuClickInterface listener) {
        this.context = context;
        mLayoutInflater = LayoutInflater.from(context);
        this.navDrawerItems = data;
        this.listener = listener;
        selectedItem = 0;
    }

这里我使用0,因为这是我菜单中的第一项。

然后在onBindViewHolder(NavDrawerMenuListViewHolder holder, int position)中,检查一下您的selectedItem == position是否将某个视图的背景设置为选择的背景:

if (selectedItem == position) {
            holder.single_title_textview.setTextColor(0xff86872b);
            holder.nav_drawer_item_holder.setBackgroundColor(Color.DKGRAY);
        } 

在这里,我将文本颜色设置为绿色,并在启动时为Realativelayout父级提供灰色背景。当然,您可以以您喜欢的任何方式对其进行自定义。

要实现项目的选择并保持状态,我使用以下方法:

public void selectTaskListItem(int pos) {

        int previousItem = selectedItem;
        selectedItem = pos;

        notifyItemChanged(previousItem);
        notifyItemChanged(pos);

    }

我通常从OnClick()方法调用此方法。

希望这有帮助!