2017-08-26 2 views
0

Je développe une application pour Android TV. J'ai fait une vue personnalisée où je représente les éléments de la liste (dans RecyclerView). Comment puis-je mettre l'accent sur mes articles et les mettre en évidence (un exemple simple serait merveilleux)?Mettez en surbrillance item recyclerview dans la mise en page personnalisée (se concentrer)

J'ai essayé d'ajouter

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

au fichier .xml, mais je ne l'ai pas vu de changements.

EDIT: Je veux obtenir accent lors de la navigation à travers les éléments par dpad

Répondre

0

adaptateur youf faire quelque chose comme ça

@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

Pourquoi utilisez-vous pas setOnitemClicklistener sur votre listview ou recycleview. Voici comment vous pouvez le faire:

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 === 


} 
}); 

Si vous n'êtes toujours pas trouvé essayer focusable utilisant cette solution:
Utilisez android:descendantFocusability="blocksDescendants" dans votre fichier XML de la première mise en page de parent dans la liste.

+0

J'ai fait une formulation terrible. Je veux obtenir le focus lors de la navigation à travers les éléments par dpad, pas en cliquant. – PeteWonder