我一直在尝试实现具有不同片段的ViewPager。
问题是,当我在所有页面中运行该应用程序时,只能看到一个页面,并且只有在我滑到ViewPager中的其他页面时才会更改该页面。
。看一下我的代码(尽管我多次使用在线资源进行了检查)。
这就是我的每个片段的样子:
public class fragment1 extends Fragment {
/* Variable to store reference to the ACtivity */
Activity mCurrentActivity;
/* Variable storing reference to the ArrayList */
private ArrayList<Word> mDefaultWords;
/**
* THe empty public Constructor
*/
public fragment1(){
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
/** Getting reference to the Activity */
mCurrentActivity = getActivity();
// Populating the ArrayList here
// And later in the onActivityCreated callback I set an adapter on the ArrayList
return inflater.inflate(R.layout.activity_others, container, false);
}
@Override
public void onActivityCreated(Bundle savedStateInstance){
super .onActivityCreated(savedStateInstance);
/**
* Creating {@link ArrayAdapter} to link the {@link String}
* from {@link ArrayList} {@param
*/
MyAdapter adaptItems = new MyAdapter(mCurrentActivity, mDefaultWords);
// Getting the id of the ListView in numberActivity.xml
ListView myList = (ListView) mCurrentActivity.findViewById(R.id.theList);
//Chaning background color
myList.setBackgroundColor(ContextCompat.getColor(getContext(), android.R.color.holo_purple));
// Setting the adapter with the {@link ListView}
myList.setAdapter(adaptItems);
}
}
}
我的活动设置适配器类,将fragmentPagerAdapter扩展为私人内部类,并在ViewPager上设置适配器。
public class Main2Activity extends AppCompatActivity {
private ViewPager mViewPager;
private FragmentPagerAdapter mFragmentStatePagerAdapter;
private FragmentManager mFragmentManager;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main2);
mFragmentManager = getSupportFragmentManager();
mViewPager = (ViewPager) findViewById(R.id.theViewPager);
mFragmentStatePagerAdapter = new MyFragmentStatePagerAdapter(mFragmentManager);
/* Setting the apdapter on the pager */
mViewPager.setAdapter(mFragmentStatePagerAdapter);
}
public class MyFragmentStatePagerAdapter extends FragmentPagerAdapter {
public MyFragmentStatePagerAdapter(FragmentManager fragmentManager){
super(fragmentManager);
}
@Override
public int getCount(){
return 4;
}
@Override
public Fragment getItem(int position) {
if (position == 0) {
return new fragment1();
} else if (position == 1){
return new fragment2();
} else if (position == 2) {
return new fragment3();
} else {
return new fragment4();
}
}
}
}
这是带有ViewPager
的布局<android.support.v4.view.ViewPager
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/theViewPager"
android:visibility="visible" />
正如我所说的,当我运行应用程序时,只显示一个页面时,查看品牌中存在其他页面,但它们是空白的,并且显示默认的背景颜色,并且显示的一个页面是当我在ViewPager中向左或向右滑动时会更改的页面。
那是什么问题?
不要降低这个问题,这是一个真正的问题。因此,我四处张望,让我说如何。发生的事情是,我正在研究一个具有旧的Gradle版本的克隆项目,而SDKTools版本也没有更新,而且很旧。最小API的目标是API 15我正在测试我在API 21上的应用程序。因此,我所做的是为每个片段使用了不同的布局。即我为每个片段创建了自己的XML布局。而且效果很好。奇怪的问题,所以我更新了Gradle和SDKTools,以避免这种奇怪的问题。