簡體   English   中英

如何使按鈕在ViewPager的特定頁面中消失?

[英]How can I make button gone in specific page of ViewPager?

我的適配器

public class InitialViewPagerAdapter extends PagerAdapter {
    private LayoutInflater mInflater;
    private Context mContext;
    private RelativeLayout mLayoutToInflate;
    private ArrayList<InitialModel> mInitialModelList;

    public InitialViewPagerAdapter(Context mContext, ArrayList<InitialModel> mInitialModelList) {
        this.mContext = mContext;
        this.mInitialModelList = mInitialModelList;
    }

    @Override
    public int getCount() {
        // TODO Auto-generated method stub
        return 5;
    }

    @Override
    public boolean isViewFromObject(View view, Object object) {
        // TODO Auto-generated method stub
        return view == ((RelativeLayout) object);
    }


    @Override
    public void destroyItem(ViewGroup container, int position, Object object) {
        ((ViewPager) container).removeView((RelativeLayout) object);
    }

    @Override
    public Object instantiateItem(ViewGroup container, int position) {
        // TODO Auto-generated method stub
        mInflater = (LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        View itemView = mInflater.inflate(R.layout.item_initial_activity_viewpager, container, false);
        mLayoutToInflate = (RelativeLayout) itemView.findViewById(R.id.layout_to_inflated_initial);

        TextView title = (TextView) itemView.findViewById(R.id.txt_initial_title);
        TextView descrition1 = (TextView) itemView.findViewById(R.id.txt_initial_above_image);
        ImageView image = (ImageView) itemView.findViewById(R.id.img_initial);
        ImageView imageButton = (ImageView) itemView.findViewById(R.id.img_initial_button);
        ImageView imageTitle = (ImageView) itemView.findViewById(R.id.img_initial_title);
        TextView textButton = (TextView) itemView.findViewById(R.id.txt_initial_button);
        TextView description2 = (TextView) itemView.findViewById(R.id.txt_initial_below_image);

        title.setText(mInitialModelList.get(position).getmTitle());
        imageTitle.setBackgroundResource(mInitialModelList.get(position).getmImageTitle());
        descrition1.setText(mInitialModelList.get(position).getmDescription1());
        image.setBackgroundResource(mInitialModelList.get(position).getmImage());
        if (mInitialModelList.get(position).getmTextButton() != null) {
            textButton.setText(mInitialModelList.get(position).getmTextButton());
        }
        if (mInitialModelList.get(position).getmImageButton() != 0) {
            imageButton.setBackgroundResource(mInitialModelList.get(position).getmImageButton());

        }
        description2.setText(mInitialModelList.get(position).getmDescription2());
        ((ViewPager) container).addView(itemView);
        return itemView;
    }

}

在我的MainActivity中,

mViewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {

            @Override
            public void onPageSelected(int position) {
                // TODO Auto-generated method stub
                if(position==0){
                    btnFunction.setVisibility(View.GONE);
                }
                if(position==2){
                    btnFunction = (RelativeLayout)findViewById(R.id.btn_initial);
                    btnFunction.setVisibility(View.VISIBLE);
                }
                if(position==3){
                    btnFunction = (RelativeLayout)findViewById(R.id.btn_initial);
                    btnFunction.setVisibility(View.GONE);
                }
                if(position==4){
                    btnFunction = (RelativeLayout)findViewById(R.id.btn_initial);
                    btnFunction.setVisibility(View.VISIBLE);
                }

            }

            @Override
            public void onPageScrolled(int arg0, float arg1, int arg2) {
                // TODO Auto-generated method stub

            }

            @Override
            public void onPageScrollStateChanged(int arg0) {
                // TODO Auto-generated method stub

            }
        });
    }

我想要的是在ViewPager的特定頁面上設置按鈕消失,但是這會使按鈕在所有頁面上消失。請教我如何操作! 先感謝您!

您需要傳遞要刪除按鈕的位置列表,並在initializeView()檢查位置並執行您想做的任何事情。

看看下面的代碼並注釋其中:

public class InitialViewPagerAdapter extends PagerAdapter {
    private LayoutInflater mInflater;
    private Context mContext;
    private RelativeLayout mLayoutToInflate;
    private ArrayList<InitialModel> mInitialModelList;
    private ArrayList<Integer> pageListToRemoveBtn;     

    public InitialViewPagerAdapter(Context mContext, ArrayList<InitialModel> mInitialModelList,ArrayList<String> list) {
        this.mContext = mContext;
        this.mInitialModelList = mInitialModelList;
        this.pageListToRemoveBtn = list; // get page no where to remove button
    } 

    @Override 
    public int getCount() { 
        // TODO Auto-generated method stub 
        return 5; 
    } 

    @Override 
    public boolean isViewFromObject(View view, Object object) {
        // TODO Auto-generated method stub 
        return view == ((RelativeLayout) object);
    } 


    @Override 
    public void destroyItem(ViewGroup container, int position, Object object) {
        ((ViewPager) container).removeView((RelativeLayout) object);
    } 

    @Override 
    public Object instantiateItem(ViewGroup container, int position) {
        // TODO Auto-generated method stub 
        mInflater = (LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        View itemView = mInflater.inflate(R.layout.item_initial_activity_viewpager, container, false);
        mLayoutToInflate = (RelativeLayout) itemView.findViewById(R.id.layout_to_inflated_initial);

        TextView title = (TextView) itemView.findViewById(R.id.txt_initial_title);
        TextView descrition1 = (TextView) itemView.findViewById(R.id.txt_initial_above_image);
        ImageView image = (ImageView) itemView.findViewById(R.id.img_initial);
        ImageView imageButton = (ImageView) itemView.findViewById(R.id.img_initial_button);
        ImageView imageTitle = (ImageView) itemView.findViewById(R.id.img_initial_title);
        TextView textButton = (TextView) itemView.findViewById(R.id.txt_initial_button);
        TextView description2 = (TextView) itemView.findViewById(R.id.txt_initial_below_image);

        title.setText(mInitialModelList.get(position).getmTitle());
        imageTitle.setBackgroundResource(mInitialModelList.get(position).getmImageTitle());
        descrition1.setText(mInitialModelList.get(position).getmDescription1());
        image.setBackgroundResource(mInitialModelList.get(position).getmImage());
        if (mInitialModelList.get(position).getmTextButton() != null) {
            textButton.setText(mInitialModelList.get(position).getmTextButton());
        } 
        if (mInitialModelList.get(position).getmImageButton() != 0) {
            imageButton.setBackgroundResource(mInitialModelList.get(position).getmImageButton());

        } 
        if(pageListToRemoveBtn.contains(positino))
        {
           // remove whatever view you want to remove.
         } 
            description2.setText(mInitialModelList.get(position).getmDescription2());
        ((ViewPager) container).addView(itemView);
        return itemView;
    } 

} 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM