viewPager每次显示相同的页面

问题描述:

我是新来的android开发,没有人似乎有这个问题,所以也许我只是密集。viewPager每次显示相同的页面

无论如何,我的问题是,我每次更改屏幕时,格式化的viewPager显示相同的字符串。我使用this教程来创建它,所以我的代码与示例代码相同。如何正确格式化代码/我应该向代码添加什么内容,以便在翻页时显示不同的屏幕?

编辑:我的代码

首页

public class Home extends AppCompatActivity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_home); 

    mPager = (ViewPager) findViewById(R.id.pager); 
    mPagerAdapter = new ScreenSlidePager.ScreenSlidePagerAdapter(getSupportFragmentManager()); 
    mPager.setAdapter(mPagerAdapter); 

    } 


    private static final int NUM_PAGES = 5; 

    private ViewPager mPager; 

    private PagerAdapter mPagerAdapter; 

    @Override 
    public void onBackPressed() { 
     if (mPager.getCurrentItem() == 0) { 
     } 
     else { 
     mPager.setCurrentItem(mPager.getCurrentItem() - 1); 
     } 
    } 

public class ScreenSlidePagerAdapter extends FragmentStatePagerAdapter { 
    public ScreenSlidePagerAdapter(FragmentManager fm) { 
     super(fm); 
    } 

    @Override 
    public Fragment getItem(int position) { 
     return new ScreenSlidePageFragment(); 
    } 

    @Override 
    public int getCount() { 
     return NUM_PAGES; 
    } 
} 

ScreenSlidePageFragment

public class ScreenSlidePageFragment extends Fragment { 

@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, 
         Bundle savedInstanceState) { 
    ViewGroup rootView = (ViewGroup) 
      inflater.inflate(R.layout.fragment_screen_slide_page, container, false); 

    return rootView; 
} 

} 

fragment_screen_slide_page

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android" 
android:id="@+id/content" 
android:layout_width="match_parent" 
android:layout_height="match_parent" > 

<TextView style="?android:textAppearanceMedium" 
    android:padding="16dp" 
    android:lineSpacingMultiplier="1.2" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:text="@string/lorem_ipsum" /> 

Home.xml

<LinearLayout 
android:layout_width="390dp" 
android:layout_height="200dp" 
android:layout_marginBottom="10dp" 
android:layout_marginTop="10dp" 
android:orientation="vertical" 
app:layout_constraintBottom_toTopOf="@id/ffweButton" 
app:layout_constraintLeft_toLeftOf="parent" 
app:layout_constraintRight_toRightOf="parent" 
app:layout_constraintTop_toBottomOf="@id/homeButton" 
app:layout_constraintVertical_bias="0.6"> 

    <android.support.v4.view.ViewPager 
     xmlns:android="http://schemas.android.com/apk/res/android" 
     android:id="@+id/pager" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent"/> 

+1

发布您的代码plz –

+0

您正在使用的代码在哪里?如果您不显示代码,我们如何帮助您?至少,您认为的代码会产生问题 – jcvegan

+0

我不确定它有什么问题,但我认为它与这些文件中的一个有关。另一个只是viewPager的布局,它工作正常。 – Mairead

尝试增加碎片适配器这样

adapter.addFragment(new Fragment1(), "FRAG1"); 
    adapter.addFragment(new Fragment2(), "FRAG2"); 
    adapter.addFragment(new Fragment3(), "FRAG3"); 

然后调用它

viewPager.setAdapter(adapter); 

你也可以发布活动home.xml吗?

+0

home.xml被添加。当我将它添加到我的适配器时,addFragment和setAdapter会出现错误消息,指出该符号无法解析,并且不能导入任何类。另外,我会在哪里打电话? – Mairead

+1

@Mairead我认为问题出在你的公共片段getItem方法,你返回ScreenSlidePageFragment。您应该返回一个数组或为其他片段进行切换。在这种情况下,你只返回1个片段。 – gunessun