作者rockex6 (rockex6)
看板AndroidDev
标题[问题] listview里面的textview跑板
时间Tue May 2 18:24:28 2017
如题
我的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://webptt.com/cn.aspx?n=bbs/AndroidDev/M.1493720671.A.92D.html
推 givemepass: 先不说跑版 你的Holder呢?
我没有写holder耶 05/02 20:35
1F:推 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
2F:→ ftplouis: 所以你的getView最後是return哪个 view ?看起来是没写 05/03 10:14
3F:→ ftplouis: 应该不是notifyDataSetChanged的问题,单纯只是你没跟 05/03 10:22
4F:→ 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
5F:推 givemepass: 没用 Holder 这个 adapter 就浪费惹 05/03 20:50