TV端使用RecyclerView时遇到的问题

1.有10条数据,但是只显示出一条。。。



   问题原因:item的布局使用了match_parent,修改为wrap_content后正常显示

2.在TV端的焦点问题,在手机端手一滑就可以查看更多的数据,因为焦点在RcyclerView上,在TV端需要使用遥控器左右键针对item切换焦点就做不到了。。。



    解决方法:设置RecyclerView的android:focusable=false,然后让item的根布局focusable=true。我怎么这么聪明,哈哈哈


3.Item的Click事件和Selected事件。



在自定义的RecyclerView.Adapter
public void onBindViewHolder(final RecyclerAdapter.ViewHolder holder, final int position)方法中做如下处理


/** 设置Item的Click事件 */
holder.itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
    if (mOnItemClickLitener != null){
        mOnItemClickLitener.onItemClick(holder.itemView, position);
    }
}
});




/** 设置Item的Selected事件 */
holder.itemView.setOnFocusChangeListener(new View.OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus) {
    Log.d("RecyclerAdapter","onFocusChange hasFocus:" + hasFocus + ",position:" + position);
    if (hasFocus){
        if (mOnItemSelectedListener != null){
            mOnItemSelectedListener.onItemSelected(holder.itemView,position);
        }
    }
}
});



你可能感兴趣的:(Android学习)