2012-03-14 42 views
3

我在添加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

回答

0

我想我的應用程序中有類似的事情發生。我有一組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

相關問題