所有頁面中改變我一直在努力實現ViewPager不同的片段。實現與片段一ViewPager,只有一個頁面在ViewPager
問題是,當我在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但他們是空白,不顯示佈局默認的背景顏色, 並且顯示的一個頁面是在ViewPager中向左或向右滑動時被更改的頁面。
那麼,有什麼問題?
檢查您的片段進口(whtether它是v4.Fragment)在你的碎片未顯示視圖尋呼機了。 –
我不確定你是否使用了所有的代碼,但我注意到'private ArrayList mDefaultWords;'沒有初始化。 –
Enzokie
不,我沒有初始化,但沒有顯示在這裏,但是,我確實解決了它,這是一個奇怪的問題,因爲當我使用每個片段一個XML佈局。它工作得很好。 Gradle和sdktools版本很舊。我想是因爲這件事發生的。 – Arunava