为了账号安全,请及时绑定邮箱和手机立即绑定

动态添加和删除视图到viewpager

动态添加和删除视图到viewpager

MMMHUHU 2019-08-14 17:10:05
动态添加和删除视图到viewpager在我的应用程序中,用户将从他的数据的单个视图开始。我想添加一个ViewPager,并允许用户根据需要添加更多视图。我该怎么做呢?(我不想使用FragmentPagerAdapter。)我已经阅读了无数的帖子和概述,但我仍然遗漏了一些东西。这是我认为我理解的:MainActivity创建一个ViewPager和PagerAdapter:ViewPager pager = null;MainPagerAdapter adapter = null;public void onCreate (Bundle savedInstanceState){   super.onCreate (savedInstanceState);   pager = new ViewPager (this);   setContentView (pager);   adapter = new MainPagerAdapter();   pager.setAdapter (adapter);    View v0 = code_to_create_initial_view();   adapter.add (v0, 0);      }使用PagerAdapter提供视图集。为此,我似乎需要添加和删除视图的方法,就像这样; 显然需要更多的东西来告诉ViewPager的内容已经改变以及如何显示更改:class MainPagerAdapter extends PagerAdapter{   // This holds all the currently displayable views, in order from left to right.   private ArrayList<View> views = new ArrayList<View>();   public void addView (View v, int position)   {     views.add (position, v);   }   public void removeView (int position)   {     views.remove (position);   }}另外,我需要实现以下的虚拟方法。我迷失在这里 - 什么叫他们以及他们应该做什么(好吧,getCount很明显)?  public object instantiateItem (ViewGroup pager, int position);   public void destroyItem (ViewGroup, int, Object);   public int getCount ();   public boolean isViewFromObject (View, Object);什么是ViewGroup参数 - 是不是ViewPager本身的包含组?isViewFromObject做了什么 - 对象如何首先与视图关联?添加或删除视图时,我应该调用startUpdate和finishUdate吗?谢谢。
查看完整描述

3 回答

?
MYYA

TA贡献1868条经验 获得超4个赞

我一直在寻找简单的解决方案来动态地从viewpager(没有片段)中删除视图。因此,如果您有一些您的网页所属的信息,则可以将其设置为View as tag。就像那样(适配器代码):

@Overridepublic Object instantiateItem(ViewGroup collection, int position){
    ImageView iv = new ImageView(mContext);
    MediaMessage msg = mMessages.get(position);
    ...

    iv.setTag(media);
    return iv;}@Overridepublic int getItemPosition (Object object){
    View o = (View) object;
    int index = mMessages.indexOf(o.getTag());
    if (index == -1)
        return POSITION_NONE;
    else
        return index;}

您只需要从mMessages中删除您的信息,然后调用notifyDataSetChanged()您的适配器。坏消息在这种情况下没有动画。


查看完整回答
反对 回复 2019-08-14
  • 3 回答
  • 0 关注
  • 845 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信