日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

android 机顶盒 view 焦点,AndroidTV/机顶盒 ListView获取焦点与点击事件问题处理方案...

發(fā)布時間:2024/9/27 57 豆豆
生活随笔 收集整理的這篇文章主要介紹了 android 机顶盒 view 焦点,AndroidTV/机顶盒 ListView获取焦点与点击事件问题处理方案... 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

AndroidTV/機頂盒 ListView獲取焦點與點擊事件問題處理方案

本人大二,最近在寫一個Android機頂盒的小項目,遇到了這樣一個問題。由于App的布局復雜,導致ListView用遙控器獲取其Item焦點時變得很卡很慢。需要不斷點擊上下鍵才能移動焦點。看了下Logcat,發(fā)現(xiàn)焦點每移到最后一個時,總是”can’t find view with Id 1/2/3/4”,試了網(wǎng)上無數(shù)種解決方案還是不行。

后來發(fā)現(xiàn),自己為每個Item.setFocusable(true)的綁定方式是有問題的,會導致android系統(tǒng)在ListView里面遍歷view的速度很慢。因為當我把Item.setFocusable(true)給注釋掉時,ListView非常流暢

最后的解決方案是,直接在Listview做一個全局的綁定來解決問題。

ListViewItem綁定問題解決方案

ListView 配置如下

bg_button_focused.xml

ListView獲取Item的焦點問題

當ListView全局綁定焦點后,又有一個問題來了,當你按到遙控器上的確認鍵時,不會有點擊效果。

之前的配置文件如下

即使pressed設置為true還是沒有作用,因此我是自己實現(xiàn)了一個選中效果,具體代碼如下:

classifyListView.setOnItemClickListener(new OnItemClickListener() {

@Override

public void onItemClick(AdapterView> parent, View view,

int position, long id) {

if (position != clickPosition) {

clickPosition = position;

}

adapter.notifyDataSetChanged();

}

});

@Override

public View getView(final int position, View convertView,

ViewGroup parent) {

LayoutInflater inflater = LayoutInflater.from(STBMainActivity.this);

convertView = inflater.inflate(R.layout.item_classify, null);

final TextView tv = ((TextView) convertView

.findViewById(R.id.tv_item_classify));

tv.setText(InfoConfig.info.class_list.get(position).name);

tv.setBackgroundResource(R.drawable.bg_button_focused);

if (position == clickPosition) {

tv.setBackgroundColor(STBMainActivity.this.getResources().getColor(R.color.purple));

}

return convertView;

}

實現(xiàn)起來非常簡單。

希望這篇文章能幫助到大家,畢竟目前AndroidTV開發(fā)技術類的文章還是比較少的,請各位多多指正!

總結

以上是生活随笔為你收集整理的android 机顶盒 view 焦点,AndroidTV/机顶盒 ListView获取焦点与点击事件问题处理方案...的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內容還不錯,歡迎將生活随笔推薦給好友。