看板 AndroidDev 關於我們 聯絡資訊
如題 我的listview會變成這樣 http://imgur.com/a/Mkn2g 從來沒遇到過這種問題.... 下面是我左邊listview的adapter class AreaSelectAdapter extends BaseAdapter { @Override public int getCount() { return TempData.areaData.size(); } @Override public Object getItem(int position) { return null; } @Override public long getItemId(int position) { return 0; } @Override public View getView(final int position, View convertView, ViewGroup parent) { LinearLayout baseLayout = null; if (convertView == null) { baseLayout = (LinearLayout) LinearLayout.inflate(mContext, R.layout.item_area, null); } else { baseLayout = (LinearLayout) convertView; } TextView area = (TextView) baseLayout.findViewById(R.id.list_item); if (TempData.areaData.size() != 0) { area.setText(TempData.areaData.get(position).getArea()); } //將選中的選項反白 if (position == mAreaPosition) { area.setTextColor(getResources().getColor(R.color.white)); } else { area.setTextColor(getResources().getColor(R.color.colorBFBFBF)); } } 先謝謝大家了 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 60.251.39.226 ※ 文章網址: https://www.ptt.cc/bbs/AndroidDev/M.1493720671.A.92D.html givemepass: 先不說跑版 你的Holder呢? 我沒有寫holder耶 05/02 20:35
ch8154: 先確定你的資料來源字串後面有沒有空白 05/02 20:42
抱歉,沒有說得很清楚定,資料確定沒有空白,因為出現這狀況之後, 只要滑動listview某些項就會跑成這樣,每次滑動跑版的項都不一樣 發現問題了,只要調用左邊Adapter的notifyDataSetChanged 就會變那樣... ※ 編輯: rockex6 (60.251.39.226), 05/03/2017 09:46:42 ※ 編輯: rockex6 (60.251.39.226), 05/03/2017 10:08:08
ftplouis: 所以你的getView最後是return哪個 view ?看起來是沒寫 05/03 10:14
ftplouis: 應該不是notifyDataSetChanged的問題,單純只是你沒跟 05/03 10:22
ftplouis: 他講你return了那個item layout,這樣不會build error? 05/03 10:22
這個是整個getView @Override public View getView(final int position, View convertView, ViewGroup parent) { LinearLayout baseLayout = null; if (convertView == null) { baseLayout = (LinearLayout) LinearLayout.inflate(mContext, R.layout.item_area, null); } else { baseLayout = (LinearLayout) convertView; } TextView area = (TextView) baseLayout.findViewById(R.id.list_item1); if (TempData.areaData.size() != 0) { area.setText(TempData.areaData.get(position).getArea()); } //將選中的選項反白 if (position == mAreaPosition) { area.setTextColor(getResources().getColor(R.color.white)); } else { area.setTextColor(getResources().getColor(R.color.colorBFBFBF)); } return baseLayout; } ※ 編輯: rockex6 (60.251.39.226), 05/03/2017 13:32:45 好..整個BUG釐清了,當我的listview點擊之後 最上第一項和最下第一項不可見的item位置跑板 因為我需要點擊item之後 把他的文字換顏色 所以叫了notifyDataSetChanged 但是這樣會跑板,把notifyDataSetChanged拔了之後就不會了 ※ 編輯: rockex6 (60.251.39.226), 05/03/2017 15:47:19
givemepass: 沒用 Holder 這個 adapter 就浪費惹 05/03 20:50