Android Tv開發 RecyclerView焦點控制及自動換行
最近開始接觸Android TV端開發,有好多不適應,尤其是對焦點的控制,這也是手機app和電視app最大的不同之處。RecyclerView是個強大的控件,能代替ListView,GridView,能實現瀑布流,還能實現橫向ListView,只需要一句代碼就能使縱向的ListView變成橫向的(主要實現就是布局管理器的選擇上)。這里我要說的是RecyclerView的item的焦點控制和RecyclerView末尾自動換行。
一、RecyclerView焦點控制
Android TV使用RecyclerView,用焦點控制item
首先在item的xml中的最外層添加android:focusable="true",該句是為RecycleView的item添加焦點屬性,添加完屬性后,在RecyclerView的adapter中的onBindViewHolder方法中添加該view(設置過 android:focusable="true"的view)的setOnFocusChangeListener()方法,如下所示:
((MyHolder) holder).ll_commitphone.setOnFocusChangeListener(new View.OnFocusChangeListener(){
@Override
public void onFocusChange(View v, boolean hasFocus) {
if (hasFocus) {
((MyHolder) holder).ll_commitphone.setBackgroundResource(R.drawable.select_ture);
} else {
((MyHolder) holder).ll_commitphone.setBackgroundResource(R.drawable.select_false);
}
}
});
二、RecyclerView末尾自動換行
由於RecyclerView的item在焦點控制的時候不會自動換行,可設置強制換行,如下:
RecyclerView.LayoutManager mLayoutManager = new GridLayoutManager(DiagnosiserActivity.this,4);
diagnosisRV.addItemDecoration(new DividerGridItemDecoration(
DiagnosiserActivity.this));
diagnosisRV.setLayoutManager(mLayoutManager);
以上只是部分代碼,歡迎下載demo。
下載地址:https://download.csdn.net/download/qq_35702985/12882124