2012-08-01 64 views
4

我有一個活動中的兩個片段,在縱向模式下,第一個(ListFragment)顯示,當用戶在ListView中的某處顯示第二個顯示,而在橫向模式下,所示。不過,我想在縱向模式下使用刷卡功能,而這應該顯示下一個片段像this exampleViewPager不刷卡與FragmentPagerAdapter

這是我的延伸FragmentActivity主要laucher活動,

package com.myexample.fragmentdemoexample; 

import java.util.LinkedList; 
import java.util.List; 
import java.util.Vector; 

import android.os.Bundle; 
import android.support.v4.app.Fragment; 
import android.support.v4.app.FragmentActivity; 
import android.support.v4.app.FragmentManager; 
import android.support.v4.app.FragmentPagerAdapter; 
import android.support.v4.app.ListFragment; 
import android.support.v4.view.ViewPager; 
import android.util.Log; 
import android.view.ViewGroup; 

public class MainFragmentActivity extends FragmentActivity { 
    private static int NUM_ITEMS = 4; 

    MyAdapter mAdapter; 

    ViewPager mPager; 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 
     mPager = (ViewPager) findViewById(R.id.pager); 
     instantiateFragments(); 
     Log.i("MainFragmentActivity", "MainFragmentActivity is Created"); 
    } 

    public void instantiateFragments() { 
     List<Fragment> fragments = new Vector<Fragment>(); 
     fragments.add(Fragment.instantiate(this, MyListFragment.class.getName())); 
     fragments.add(Fragment.instantiate(this, DetailFragment.class.getName())); 
     mAdapter = new MyAdapter(getSupportFragmentManager(), fragments); 
     mPager.setAdapter(mAdapter); 
     mPager.setCurrentItem(0); 
    } 

    public class MyAdapter extends FragmentPagerAdapter { 
     private FragmentManager frmanager; 
     private List<Fragment> fragments; 

     public MyAdapter(FragmentManager fm, List<Fragment> fragList) { 
      super(fm); 
      frmanager = fm; 
      fragments = fragList; 
     } 

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

     @Override 
     public Fragment getItem(int position) { 
      return fragments.get(position); 
     } 
    } 
} 

這是我佈局/ main.xml中文件

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="horizontal" > 

    <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="0px" 
     android:layout_weight="1" > 
    </android.support.v4.view.ViewPager> 

    <fragment 
     android:id="@+id/listFragment" 
     android:layout_width="150dip" 
     android:layout_height="match_parent" 
     class="com.myexample.fragmentdemoexample.MyListFragment" 
     android:tag="listFragment" > 
    </fragment> 

    <fragment 
     android:id="@+id/detailFragment" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     class="com.myexample.fragmentdemoexample.DetailFragment" 
     android:tag="detailFragment" > 
     <!-- Preview: [email protected]/details --> 
    </fragment> 

</LinearLayout> 

/layout-port/main.xml文件包含

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:orientation="horizontal" > 

    <android.support.v4.view.ViewPager 
     android:id="@+id/pager" 
     android:layout_width="match_parent" 
     android:layout_height="0px" 
     android:layout_weight="1" > 
    </android.support.v4.view.ViewPager> 

    <fragment 
     android:id="@+id/listFragment" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     class="com.myexample.fragmentdemoexample.MyListFragment" /> 

</LinearLayout> 

我不知道爲什麼View Pager沒有刷入下一個片段......我該怎麼做?我第一次使用Fragment API ..所以請給正確的方向指點一些。

注意對於其他文件看到this question

回答

3

最後harrasment的小時後問題解決了由主要佈局文件中刪除片段標記。現在main.xml中包含

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="horizontal" > 

    <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="0px" 
     android:layout_weight="1" > 
    </android.support.v4.view.ViewPager> 


</LinearLayout> 

這可能是與其他類似的問題有幫助...

1

即使它不直接回答這個問題,但它有回答類似的問題,我已經面對。可能會幫助他人有類似的問題。

如果你有喜歡

<AppBarLayout> 
    <ToolBar /> 
     <TabLayout /> 
      <ViewPager /> 
</AppBarLayout> 

佈局這裏的錯誤是ViewPager不應該是內部AppBarLayout。因此,將您的代碼更改爲:

<AppBarLayout> 
    <ToolBar /> 
     <TabLayout /> 
</AppBarLayout> 
<ViewPager /> 
相關問題