-1

所有頁面中改變我一直在努力實現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中向左或向右滑動時被更改的頁面。

那麼,有什麼問題?

+0

檢查您的片段進口(whtether它是v4.Fragment)在你的碎片未顯示視圖尋呼機了。 –

+0

我不確定你是否使用了所有的代碼,但我注意到'private ArrayList mDefaultWords;'沒有初始化。 – Enzokie

+0

不,我沒有初始化,但沒有顯示在這裏,但是,我確實解決了它,這是一個奇怪的問題,因爲當我使用每個片段一個XML佈局。它工作得很好。 Gradle和sdktools版本很舊。我想是因爲這件事發生的。 – Arunava

回答

0

不downvote的問題,其真正的問題。 所以,我的工作方式,讓我說如何。 發生了什麼事情是,我正在研究一個具有舊gradle版本的克隆項目,並且sdktools版本也沒有更新,並且已經過時。 和最小API針對性是API 15 而我在API 21 測試我的應用程序,這樣,我所做的是我用了不同的佈局我的每一個片段。 這就是我爲每個片段創建了自己的XML佈局。 而且工作完美。 奇怪的問題,所以我更新了gradle和sdktools,以避免這種奇怪的問題。

+0

是的。但實際上我通過對每個片段使用一個佈局來解決問題。該應用程序有奇怪的問題。我的其他應用程序沒有這個問題。我想這是因爲sdktools和gradle版本。因爲他們很老。 – Arunava