2014-09-25 265 views
1

我有一個包含3個片段的slinding選項卡。第一個片段有一個按鈕,應該在同一個滑動標籤下打開一個片段。 我有以下觀點:從另一個片段調用片段

https://drive.google.com/file/d/0B1QZMHJgpviceXlOWWFUdHdnTTQ/edit?usp=sharing

我想上按鈕點擊來自以上的最終視圖如下:

https://drive.google.com/file/d/0B1QZMHJgpvicZzlSeXhLTFFlNE0/edit?usp=sharing

我使用替換嘗試,但這些片段相互重疊。

爲fragmentactivity,適配器和一個片段的代碼如下:

public class Slidingtab extends FragmentActivity implements 
ActionBar.TabListener{ 

private ViewPager viewPager; 
private TabsPagerAdapter mAdapter; 
private ActionBar actionBar; 
// Tab titles 
private String[] tabs = { "Post", "Recent", "Search" }; 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_slidingtab); 
    Log.d("Slding tab", "started"); 
    // Initilization 
    viewPager = (ViewPager) findViewById(R.id.pager); 
    actionBar = getActionBar(); 
    mAdapter = new TabsPagerAdapter(getSupportFragmentManager()); 

    viewPager.setAdapter(mAdapter); 
    actionBar.setHomeButtonEnabled(false); 
    actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);   

    // Adding Tabs 
    for (String tab_name : tabs) { 
     actionBar.addTab(actionBar.newTab().setText(tab_name) 
       .setTabListener((TabListener) this)); 
    } 

    /** 
    * on swiping the viewpager make respective tab selected 
    * */ 
    viewPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() { 

     @Override 
     public void onPageSelected(int position) { 
      // on changing the page 
      // make respected tab selected 
      actionBar.setSelectedNavigationItem(position); 
     } 

     @Override 
     public void onPageScrolled(int arg0, float arg1, int arg2) { 
     } 

     @Override 
     public void onPageScrollStateChanged(int arg0) { 
     } 
    }); 
    Log.d("Slding tab", "ended"); 
} 

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    // Inflate the menu; this adds items to the action bar if it is present. 
    getMenuInflater().inflate(R.menu.slidingtab, menu); 
    return true; 
} 

@Override 
public void onTabReselected(Tab tab, FragmentTransaction ft) { 
    // TODO Auto-generated method stub 

} 

@Override 
public void onTabSelected(Tab tab, FragmentTransaction ft) { 
    // TODO Auto-generated method stub 
    viewPager.setCurrentItem(tab.getPosition()); 

} 

@Override 
public void onTabUnselected(Tab tab, FragmentTransaction ft) { 
    // TODO Auto-generated method stub 

} 

} 

適配器

public class TabsPagerAdapter extends FragmentPagerAdapter { 
public TabsPagerAdapter(FragmentManager fm) { 
    super(fm); 
    Log.d("adapter constructor", "started"); 
} 

@Override 
public Fragment getItem(int index) { 
    Log.d("adapter", "started"); 
    switch (index) { 
    case 0: 
     // Top Rated fragment activity 
     return new Homefragment(); 
    case 1: 
     // Games fragment activity 
     return new Recentfragment(); 
    case 2: 
     // Movies fragment activity 
     return new Searchfragment(); 
    } 
    Log.d("adapter", "ended"); 
    return null; 
} 

@Override 
public int getCount() { 
    // get item count - equal to number of tabs 
    return 3; 
} 
} 

HomeFragment

public class Homefragment extends Fragment { 

@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, 
     Bundle savedInstanceState) { 
    Log.d("Home fragment", "started"); 
    View rootView = inflater.inflate(R.layout.activity_homefragment, container, false); 
    Log.d("Home fragment", "ended"); 
    return rootView; 
} 
} 

我在這個片段的按鈕。我想按鈕點擊打開一個片段。 有什麼幫助嗎?更多

// Create new fragment and transaction 
Fragment newFragment = new ExampleFragment(); 
FragmentTransaction transaction = getFragmentManager().beginTransaction(); 

// Replace whatever is in the fragment_container view with this fragment, 
// and add the transaction to the back stack 
transaction.replace(R.id.fragment_container, newFragment); 
transaction.addToBackStack(null); 

// Commit the transaction 
transaction.commit(); 

退房tutorial

+0

你可以在這裏發佈你的代碼而不是鏈接到它嗎? – RyPope 2014-09-25 15:06:20

+0

新帳戶。再加上這是片段的截圖 – Arya 2014-09-25 15:11:46

+0

任何帳戶可以添加代碼到他們的問題,它只是文本。讓我們來看看你到目前爲止,並努力解決。 – RyPope 2014-09-25 15:13:14

回答

0

沒有看到你的代碼,我不能明確地說,但你可以嘗試這樣的東西。

+0

我試過了。這兩個片段然後相互重疊。 – Arya 2014-09-25 15:37:45

相關問題