使用ViewPager从片段选项卡中添加单独的片段

问题描述:

我在添加Fragment之前添加Fragment,除了Fragments之外,我已链接到每个Tabs。换句话说,我希望能够在FragmentsViewPager之间滑动,但我不希望第一个Fragment成为Tabs之一。使用ViewPager从片段选项卡中添加单独的片段

AdpaterViewPagerTabs基本上是实例的谷歌给出on the Developers website.

我试着走在前面,并添加Fragment我想从另一个单独的TabHost作为一个选项卡,然后设置TabWidget能见度在位置0处移动,尽管移除了TabWidget,但当我滑动到其他位置时,位置0的选项卡仍然存在。这种方法也有点笨拙,我宁愿以更好的方式实现这一点。

我会分享一些代码,但大部分代码都发布在Developers网站上,但如果我需要的话,我会的。

+0

如果你不希望能够滑回到你的第一个标签,为什么你不只是从第一个'onTabChanged( )'然后调用'tabadapter.notifyDatasetChanged()'? – Reinier 2012-03-21 14:27:37

我想我的应用程序中有类似的事情发生。我有一组actionbar选项卡,每个选项卡都有自己的片段。当您点击标签中的某些按钮时,将会启动另一个片段。显然你知道所有关于ViewPager,TabListener解决方案等,但是我的解决方案启动了另一个填充整个屏幕的片段。当您按回(当专注于新片段时),它会将您返回到您在操作栏选项卡活动中的位置。以下是启动新片段的代码片段:

public class EconFragment extends Fragment { 

private ViewGroup container; 
private TableLayout questionContainer; 
private ScrollView scrollView; 
private ViewGroup econFragment; 
private View[] questions; 
static int pos = 0; 
private String[] titles = {"The first title ", "hallo1","hallo2", "hallo3", 
     "hallo4", "hallo5","hallo6", "hallo7","hallo8", "hallo9"}; 

public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 
    Log.d("Econ", "onCreateView"); 
    this.container = container; 
    return inflater.inflate(R.layout.econfragment, container, false); 
} 

public OnClickListener chartsListener = new OnClickListener() { 
    public void onClick(View v) { 
     Intent chart = new Intent(); 
     chart.setClass(getActivity(), Chart.class); 
     chart.putExtra("key", titles[v.getId()]); 
     Log.v("TAG", Integer.toString(v.getId())); 
     startActivity(chart); 
    } 
}; 

正如您所见,我启动了一个名为chart的新意图。图表的类然后被设置为图表 - 它扩展了片段。这里的堆栈溢出的讨论,导致我这个实现:Start a fragment via Intent within a Fragment

+0

对不起,我忘了提及一些东西。我最初的实现(在我发送的SO链接中)试图让Chart成为一个片段。它实际上是一个扩展Activity的类。鉴于我想让它填满屏幕,事实证明,它使用与我打算用于图表片段相同的xml文件来扩展Activity,该解决方案运行得非常好。 – Davek804 2012-03-23 06:38:12