我正在开发 Android TV 的应用程序。我创建了一个自定义视图,我代表列表项(在RecyclerView中)。 如何关注我的项目并突出显示它们(一个简单的例子会很精彩)?
我确实尝试添加
android:focusableInTouchMode="true"
android:focusable="true"
到.xml
文件,但我没有看到任何更改。
编辑:我希望在通过dpad浏览项目时获得焦点
答案 0 :(得分:0)
@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"
。