2017-08-26 93 views
0

我正在爲Android TV開發應用程序。我做了一個自定義視圖,代表列表項目(在RecyclerView中)。 我怎樣才能把注意力集中在我的項目上並突出它們(一個簡單的例子會很棒)?在自定義佈局中突出顯示recyclerview項目(獲得焦點)

我曾嘗試

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

添加到.xml文件,但我還沒有看到任何改變。

編輯:我想焦點通過項目在youf適配器導航時通過DPAD

回答

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); 
     } 
    }); 

} 
0

你爲什麼不使用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 === 


} 
}); 

如果你仍然沒有使用這一解決方案獲得可聚焦嘗試:
使用android:descendantFocusability="blocksDescendants"在列表中的第一個父佈局的XML文件。

+0

我做了可怕的表述。我想在通過dpad瀏覽項目時獲得焦點,而不是通過單擊。 – PeteWonder