在viewpager中查看所有视图时,如何显示按钮?

时间:2014-11-10 04:21:01

标签: java android android-viewpager

现在我有一个保存按钮,只有在显示viewpager中的所有视图时才能显示。这意味着当用户在视图之间滑动并看到viewpager中的所有视图时,则显示一个保存按钮。

我想在每个视图上显示保存按钮,因为他们之后看过所有视图。

我遇到的麻烦是如何设置逻辑。我开始时将保存按钮设置为不可见,直到viewpager的最后一个视图。在viewpager的最后一个视图中,显示保存按钮。但问题是当用户转到最后一个视图(那里是一个保存按钮)然后返回到上一个视图时,保存按钮就消失了。

所以,我想知道在用户看到所有视图后如何在所有视图上永久显示保存按钮?

这是我到目前为止所拥有的:

我在InstantiateItem()中有这个片段:

if(isViewed)
{
 save_button.setVisibility(Button.VISIBLE);
 System.out.println("Is this called? isViewed = true");


 }else if (position == numberOfPages.size()-1) {

 isViewed = true;
 save_button.setVisibility(Button.VISIBLE);
 }

其中

@Override
public void onPageSelected(int position) {
isViewed = true;
}

编辑:

我尝试了以下解决方案,但没有运气。

Button save_button = (Button) findViewById(R.id.save);
                    if(isViewed[position])
                    {
                        save_button.setVisibility(Button.VISIBLE);
                    }
                    if (position == numberOfPages.length-1 && !isViewed[position]) {
                        isViewed[position] = true;
                        save_button.setVisibility(Button.VISIBLE);
                    }
                    isViewed[position] =true;

isViewed[position] = true;
                    if (isViewed[position] == isViewed[numberOfPages.length-1]) {
                        save_button.setVisibility(Button.VISIBLE);
                    }
                        if (isViewed[position]) {
                            save_button.setVisibility(Button.VISIBLE);
                        } else {
                            save_button.setVisibility(Button.INVISIBLE);
                        }

2 个答案:

答案 0 :(得分:1)

boolean []isViewed = new boolean[noOfPages.size()];

 @Override
 public void onPageSelected(int position) {
        if(isViewed[position])
            {
               save_button.setVisibility(Button.VISIBLE); 
            }
        else  {
               save_button.setVisibility(Button.GONE); 
            }
      isViewed[position] = true;
 } 

答案 1 :(得分:1)

onPageSelected中,执行以下操作

if(isViewed)
{
 save_button.setVisibility(Button.VISIBLE);
 }
 if (position == numberOfPages.size()-1) {
 isViewed = true;
 save_button.setVisibility(Button.VISIBLE);
 }

注意以上是两个单独的if语句。

将您的isViewed设为全局,默认为false