Listview包含SlidingMenu中的Viewpager-Android



在我的项目中,listview包含用于加载图像的viewpager。实际上,这个列表视图是在一个使用滑动菜单的片段中加载的。

这里的问题是布局既没有加载也没有显示任何错误。

我使用了这样的页面容器s://gist.github.com/devunred/8cbe094bb7a783e37ad1

我的适配器类

 public class SampleAdapter extends BaseAdapter {
private Activity activity;
private String[] titleData;
private int[] imageData;
private ArrayList<Request> List;
PagerContainer mContainer;
MyPagerAdapter adapter;
public SampleAdapter(Activity a, ArrayList<Request> list) {
    activity = a;
    List = new ArrayList<Request>();
    List = list;

}
@Override
public int getCount() {
    return List.size();
}
@Override
public Object getItem(int position) {
    return position;
}
@Override
public long getItemId(int position) {
    return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
    LayoutInflater inflater = (LayoutInflater) activity.getSystemService(
                    Context.LAYOUT_INFLATER_SERVICE);
    View rowView = inflater.inflate(R.layout.cus_hub_list, parent, false);
    mContainer = (PagerContainer) rowView.findViewById(R.id.pager_container);
    ViewPager pager = mContainer.getViewPager();

    adapter = new MyPagerAdapter();

    pager.setAdapter(adapter);

    pager.setOffscreenPageLimit(adapter.getCount());
    pager.setPageMargin(15);
    pager.setClipChildren(false);
    return rowView;
}
public  class MyPagerAdapter extends PagerAdapter {
    @Override
    public Object instantiateItem(ViewGroup container, int position) 
    {
        TextView view = new TextView(activity);
        view.setText("Item " + position);
        view.setGravity(Gravity.CENTER);
        view.setBackgroundColor(Color.argb(255, position * 50,
                position * 10, position * 50));
        container.addView(view);
        return view;
    }
    @Override
    public void destroyItem(ViewGroup container, int position, Object object) {
        container.removeView((View) object);
    }
    @Override
    public int getCount() {
        return 5;
    }
    @Override
    public boolean isViewFromObject(View view, Object object) {
        return (view == object);
    }
    @Override
    public int getItemPosition(Object object) {
           return POSITION_NONE;
        }
}

}

但问题是listview没有显示任何列表项。

有人能解决这个问题吗。

提前感谢。

您的SampleAdapter在拥有其管理的项目列表的同时,从不在getView方法中对它们执行任何操作。不出所料,什么都没有出现!

我建议您使用本问题中解释的ViewHolder来填充您想要显示的所有项目,然后使用getView方法的convertView参数将其可视化。

请参阅本教程,了解Holder Pattern以及如何为您的View设置List的内容。

在您的寻呼机中,以dp为单位指定高度。此高度可根据屏幕进行调整

最新更新