用Fragment实现Tag换页,在第一个Fragment中嵌入了一个ViewPager和ListView。 都写好了,然后运行的时候弹出界面是ListView是不显示本人载入的内容,要下拉才显示。本人截个图给你们看看
一打开界面是
然后本人向下滑动,listView的内容才显示出来!

代码如下:
一打开界面是

然后本人向下滑动,listView的内容才显示出来!

代码如下:
View view = inflater.inflate(R.layout.home_pager, container, false);
Notice_ItemBeanlist = new ArrayList<Notice_ItemBean>();
context = MyApplication.getInstance();
ListView listView = (ListView) view.findViewById(R.id.id_listView_notice);
for (int i = 0; i < 20; i++) {
Notice_ItemBeanlist.add(new Notice_ItemBean(
R.drawable.ic_launcher,
"本人是标题" + i,
"本人是内容" + i));
}
listView.setAdapter(new MyNoticeAdapter(context, Notice_ItemBeanlist));
适配器代码如下:
public class MyNoticeAdapter extends BaseAdapter{
private List<Notice_ItemBean> mlist;
private LayoutInflater mInflater;
public MyNoticeAdapter(Context home_page,List<Notice_ItemBean> mlist) {
// TODO Auto-generated constructor stub
this.mlist=mlist;
mInflater=LayoutInflater.from(home_page);
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return mlist.size();
}
@Override
public Object getItem(int position) {
// TODO Auto-generated method stub
return mlist.get(position);
}
@Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
ViewHolder viewHolder;
if(convertView==null){
viewHolder=new ViewHolder();
convertView=mInflater.inflate(R.layout.item_notice, null);
viewHolder.noitce_imag=(ImageView) convertView.findViewById(R.id.notice_image);
viewHolder.noitce_title=(TextView) convertView.findViewById(R.id.notice_title);
viewHolder.noitce_content=(TextView) convertView.findViewById(R.id.notice_content);
convertView.setTag(viewHolder);
}else {
viewHolder=(ViewHolder) convertView.getTag();
Notice_ItemBean bean =mlist.get(position);
viewHolder.noitce_imag.setImageResource(bean.ItemImageResid);
viewHolder.noitce_content.setText(bean.ItemContent);
viewHolder.noitce_title.setText(bean.ItemTitle);
}
return convertView;
}
class ViewHolder{
private ImageView noitce_imag;
private TextView noitce_title;
private TextView noitce_content;
}
}
解决方案
10
viewHolder.noitce_imag=(ImageView) convertView.findViewById(R.id.notice_image);
viewHolder.noitce_title=(TextView) convertView.findViewById(R.id.notice_title);
viewHolder.noitce_content=(TextView) convertView.findViewById(R.id.notice_content);
先声明viewHolder = null,这几行操作放在if(){}else{}外面
viewHolder.noitce_title=(TextView) convertView.findViewById(R.id.notice_title);
viewHolder.noitce_content=(TextView) convertView.findViewById(R.id.notice_content);
先声明viewHolder = null,这几行操作放在if(){}else{}外面
15
没显示的原因在于,你在if(convertView==null)中并没有为这些控件设置setText,所以在前面这几行就不会有数据,而后面那几行由于是进入了else的判断,而else的判断中题主已经为它们添加了setText了,所以滑下来才有数据
可以将你那几行setText同样放在if(convertView==null)中,如下:
可以将你那几行setText同样放在if(convertView==null)中,如下:
@Override
public View getView(int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
ViewHolder viewHolder;
if(convertView==null){
viewHolder=new ViewHolder();
convertView=mInflater.inflate(R.layout.item_notice, null);
viewHolder.noitce_imag=(ImageView) convertView.findViewById(R.id.notice_image);
viewHolder.noitce_title=(TextView) convertView.findViewById(R.id.notice_title);
viewHolder.noitce_content=(TextView) convertView.findViewById(R.id.notice_content);
viewHolder.noitce_imag.setImageResource(bean.ItemImageResid);
viewHolder.noitce_content.setText(bean.ItemContent);
viewHolder.noitce_title.setText(bean.ItemTitle);
convertView.setTag(viewHolder);
}else {
viewHolder=(ViewHolder) convertView.getTag();
Notice_ItemBean bean =mlist.get(position);
viewHolder.noitce_imag.setImageResource(bean.ItemImageResid);
viewHolder.noitce_content.setText(bean.ItemContent);
viewHolder.noitce_title.setText(bean.ItemTitle);
}
return convertView;
}
15
更正一下:
应该是一开始设置ViewHolder为null,
然后将setText部分从else中拿出来:
应该是一开始设置ViewHolder为null,
然后将setText部分从else中拿出来:
@Override
public View getView(int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
ViewHolder viewHolder = null;
Notice_ItemBean bean;
if(convertView==null){
viewHolder=new ViewHolder();
convertView=mInflater.inflate(R.layout.item_notice, null);
viewHolder.noitce_imag=(ImageView) convertView.findViewById(R.id.notice_image);
viewHolder.noitce_title=(TextView) convertView.findViewById(R.id.notice_title);
viewHolder.noitce_content=(TextView) convertView.findViewById(R.id.notice_content);
convertView.setTag(viewHolder);
}else {
viewHolder=(ViewHolder) convertView.getTag();
bean =mlist.get(position);
}
viewHolder.noitce_imag.setImageResource(bean.ItemImageResid);
viewHolder.noitce_content.setText(bean.ItemContent);
viewHolder.noitce_title.setText(bean.ItemTitle);
return convertView;
}