前言
Gallery的Item使用的是一個ImageView+TextView,并且為其設(shè)置了selector,當使用setSelection設(shè)置時、橫豎屏切換時Item的狀態(tài)不會改變,這個目前在2.2/2.3系統(tǒng)中存在,高版本如4.0是不存在的。
正文
一、第一步,解決ImageView的狀態(tài)問題
為ImageView設(shè)置 :android:focusableInTouchMode="true"
注意同樣屬性設(shè)置TextView不管用。
二、第二步,手動控制文本根據(jù)狀態(tài)不同設(shè)置不同顏色
2.1 在onConfigurationChanged中通知Gallery的Adapter數(shù)據(jù)更新notifyDataSetChanged
2.2 在Gallery的onItemSelected中通知Gallery的Adapter數(shù)據(jù)更新notifyDataSetChanged
2.3 在Gallery Adapter的getView中根據(jù)當前選中索引修改文本顏色
if (position == mGallery.getSelectedItemPosition()) { title.setTextColor(COLOR_NAV_SELECTED); } else title.setTextColor(COLOR_NAV_NORMAL); 其中COLOR_NAV_SELECTED和COLOR_NAV_NORMAL分別是選中和未選中的顏色。
結(jié)束
注意,該問題在手動滑動Gallery時不存在,通過setSelection更改Gallery選中項時存在,且高版本中不存在。
以上就是對Android(2.2/2.3版本)Gallery 常出現(xiàn)錯誤的分析,希望能幫助開發(fā)Android的朋友。
新聞熱點
疑難解答