2014-09-25 128 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