2014-01-15 30 views
0

我使用viewpager並用4個片段填充它。
我無法上傳圖片以顯示它的外觀。不過,我已將圖片上傳到圖片託管網站,並在此包含了圖片的鏈接。
我需要的是:http://postimg.org/image/3l4h53ucl/Android的Viewpager與4片段的局部視圖

不過,我目前可以得到的工作是:http://postimg.org/image/m5kauitzr/

我怎樣才能解決這個問題? 我已經看到了這完美地完成一個viewpager 3頁:
ViewPager - get a partial view of the next page

MainActivity.java全局變量

PagerAdapter myPagerAdapter; 
    ViewPager myPager; 
    List<Fragment> myDefaultFragments; 

MainActivity.java

myDefaultFragments = new Vector<Fragment>(); 
    myDefaultFragments.add(Fragment.instantiate(this, SettingsFragment.class.getName())); 
    myDefaultFragments.add(Fragment.instantiate(this, MainFragment.class.getName())); 
    myDefaultFragments.add(Fragment.instantiate(this, FriendsFragment.class.getName())); 
    myDefaultFragments.add(Fragment.instantiate(this, MessagesFragment.class.getName())); 

    myPagerAdapter = new PagerAdapter(this.getSupportFragmentManager(), myDefaultFragments); 

    myPager = (ViewPager) findViewById(R.id.viewPager); 
    myPager.setAdapter(myPagerAdapter); 

PagerAdapter.java

public class PagerAdapter extends FragmentPagerAdapter { 

private List<Fragment> myFragments; 

public PagerAdapter(FragmentManager fm, List<Fragment> fragments){ 
    super(fm); 
    this.myFragments = fragments; 
} 

@Override 
public Fragment getItem(int whichFrag){ 
    return this.myFragments.get(whichFrag); 
} 

@Override 
public int getCount(){ 
    return this.myFragments.size(); 
} 

@Override 
public float getPageWidth(int position) { 

    if (position == 0 || position == 2){ 
     return 0.9f; 
    } else if (position == 3) { 
     return 0.8f; 
    } 
    return 1f; 
} 
} 
+0

看看這個線程:http://stackoverflow.com/questions/13914609/viewpager-with-previous-and-next-頁邊界 – Andros

回答

0

我不知道exa您需要輸入什麼樣的價值,但您應該嘗試一些價值觀並檢查他們的工作。

我的猜測:

位置0:0.9f

職位1:1.3F

位置2:1F

職位3:0.8f

我不是確定ViewPager爲大於1.0f的值做了什麼,但它可能工作。

0

變化:

@Override 
public float getPageWidth(int position) { 

    if (position == 0 || position == 2){ 
     return 0.9f; 
    } else if (position == 3) { 
     return 0.8f; 
    } 
    return 1f; 
} 

到:

@Override 
public float getPageWidth(int position) { 


    switch(position){ 
     case 0: 
      return 0.9f; 
     case 1: 
      return 1.2f; 
     case 2: 
      return 1f; 
     case 3: 
      return 0.9f; 
     default: 
      return 1f; 
    } 

} 
+0

因爲case 1的返回值是1.2f,所以它實際上會使viewpager擴展頁面。然而,當情況2出現時,它覆蓋整個視圖。我將案例2的返回1f更改爲0.9f,但仍然無效。 –