在自定义布局中突出显示recyclerview项目(获得焦点)

时间:2017-08-26 14:41:15

标签: android android-tv

我正在开发 Android TV 的应用程序。我创建了一个自定义视图,我代表列表项(在RecyclerView中)。 如何关注我的项目并突出显示它们(一个简单的例子会很精彩)?

我确实尝试添加

android:focusableInTouchMode="true"
android:focusable="true"

.xml文件,但我没有看到任何更改。

编辑:我希望在通过dpad浏览项目时获得焦点

2 个答案:

答案 0 :(得分:0)

在youf适配器中执行类似这样的操作

@Override
public void onBindViewHolder(ViewHolder viewHolder, int i) {

    viewHolder.YOUR_LAYOUT.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            // do whatever you want
            viewHolder.YOUR_LAYOUT.setBackgroundResource(R.drawable.ripple_effect);
        }
    });

}

答案 1 :(得分:0)

为什么不在listview或recycleview上使用setOnitemClicklistener。您可以这样做:

ListView lv = getListView();
setContentView(lv);
lv.setOnItemClickListener(new OnItemClickListener()
{
@Override 
public void onItemClick(AdapterView<?> arg0, View view,int position, long arg3)
{ 
    Toast.makeText(Activity.this, "" + position, Toast.LENGTH_SHORT).show();

//========== Here you can change the color of selected item ========
TextView Tv_title = (TextView)view.findViewById(R.id.title);
Tv_title.setTextColor(Color.RED);
//====== Your can make any view color change here just like i did for textview ===


}
});

如果您仍无法获得专注,请尝试使用此解决方案:
在列表中第一个父布局的XML文件中使用android:descendantFocusability="blocksDescendants"