日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

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

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

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

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

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

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

ListViewItem綁定問題解決方案

ListView 配置如下

bg_button_focused.xml

ListView獲取Item的焦點問題

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

之前的配置文件如下

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

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;

}

實現起來非常簡單。

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

總結

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

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