2012-05-23 125 views
2

所以現在看來​​,標籤在android中的標籤是在FragmentActivity中使用tabhost,然後將每個選項卡作爲片段。我在這裏遇到的問題是,看起來整個系統的側邊片段具有相同的FragmentActivity(平板電腦或橫向模式),或者有一個片段使用第二個片段(如果它的小設備或旋轉)啓動另一個FragmentActivity,工作,因爲你不能有每個標籤的FragmentActivities。那麼我如何實現在選項卡上有碎片的主要優勢點?片段選項卡和不同的佈局

關於,

回答

4

是的,您可以爲每個選項卡設置fragmentActivities。

這是一個PagerAdapter例如:

public class ExamplePagerAdapter extends FragmentPagerAdapter { 

    public ExamplePagerAdapter(FragmentManager fm) { 
     super(fm); 
     // TODO Auto-generated constructor stub 
    } 


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

    @Override 
    public Fragment getItem(int position) { 
     Fragment f = null; 
     switch(position){ 
     case 0: 
     { 
     f = new ArrayListFragment(); 
     // set arguments here, if required 
     Bundle args = new Bundle(); 
     f.setArguments(args); 
     break; 
     } 
     case 1: 
     { 
      f = new PrincipalFragment(); 
      // set arguments here, if required 
      Bundle args = new Bundle(); 
      f.setArguments(args); 
      break; 
     } 
     case 2: 
     { 
      f = new ViewFragment(); 
      // set arguments here, if required 
      Bundle args = new Bundle(); 
      f.setArguments(args); 
      break; 
     } 
     default: 
      throw new IllegalArgumentException("not this many fragments: " + position); 
     } 


     return f; 


} 

}

您可以使用此呼籲每個片段每一項活動。

public class PrincipalFragment extends Fragment { 

    private int mNum; 
    private EditText et; 



    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     mNum = getArguments() != null ? getArguments().getInt("num") : 1; 
    } 

    /** 
    * The Fragment's UI is just a simple text view showing its 
    * instance number. 
    */ 
    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
      Bundle savedInstanceState) { 
     View v = inflater.inflate(R.layout.scrollview, container, false); 



     ImageView i = (ImageView)v.findViewById(R.id.imageView1); 
      ImageView i2 = (ImageView)v.findViewById(R.id.imageView2); 

      ImageView i4 = (ImageView)v.findViewById(R.id.imageView4); 
      ImageView i5 = (ImageView)v.findViewById(R.id.imageView5); 


      ImageDownloader.Mode mode = ImageDownloader.Mode.CORRECT; 
      ImageDownloader imageDownloader = new ImageDownloader(); 
      imageDownloader.download(URLnames.URLS[1], i); 
      imageDownloader.download(URLnames.URLS[2], i2); 
      imageDownloader.download(URLnames.URLS[3], i4); 
      imageDownloader.download(URLnames.URLS[4], i5); 


     return v; 

就像上面的例子中,我調用佈局滾動型,所以當你要創建scrollview.xml你需要指定的細節。

新建> android xml文件>選擇佈局類型>下一步>選擇一個特定的配置(您可以使用密度,方向等...)>完成。

現在eclipse會爲每個特定配置創建一個不同的文件夾,並在您運行不同的屏幕尺寸或sdkversion時自行管理它。

閱讀Supporting Multiple Screens瞭解更多信息。

不知道如何正確實現tabscroll?訪問此答案:Actionbarsherlock + tabs + multi fragments?

在片段活動中,您可以創建一個案例來選擇屏幕方向或將其放在AndroidManifest.xml中。

+0

好的,謝謝我明天要檢查一下...但activityFragments在哪裏,似乎這返回片段與getItem()方法,但我把這個? – Maxrunner

+0

它會返回片段,只讀我的補充,並給我一個答案。 – Marckaraujo

相關問題