我已经使用这个函数创建了我的标签:
public class MyTaber extends SherlockFragmentActivity implements ActionBar.TabListener, ViewPager.OnPageChangeListener{
TabHost mTabHost;
private Tab1MyFirstTab frgTabMyFirstTab;
private Tab2Recipes frgTabRecipes;
private Tab3Products frgTabProducts;
private Tab4FAQ frgTabFAQ;
private Tab5Settings frgTabSettings;
private ViewPager mViewPager;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.myview);
mViewPager = (ViewPager) findViewById(R.id.pager);
mViewPager.setAdapter(new MainPagerAdapter(
getSupportFragmentManager()));
mViewPager.setOnPageChangeListener(this);
mViewPager.setPageMarginDrawable(R.drawable.border);
mViewPager.setPageMargin(16);
final ActionBar actionBar = getSupportActionBar();
getSupportActionBar().setDisplayShowHomeEnabled(false);
getSupportActionBar().setDisplayShowTitleEnabled(false);
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
actionBar.addTab(actionBar.newTab().setText(R.string.tab_myfirsttab_title)
.setTabListener(this).setIcon(R.drawable.ic_tab1_inactive));
actionBar.addTab(actionBar.newTab().setText(R.string.tab_recipes_title)
.setTabListener(this).setIcon(R.drawable.ic_tab2_inactive));
actionBar.addTab(actionBar.newTab().setText(R.string.tab_products_title)
.setTabListener(this).setIcon(R.drawable.ic_tab3_inactive));
actionBar.addTab(actionBar.newTab().setText(R.string.tab_faq_title)
.setTabListener(this).setIcon(R.drawable.ic_tab4_inactive));
actionBar.addTab(actionBar.newTab()
.setText(R.string.tab_settings_title).setTabListener(this).setIcon(R.drawable.ic_tab5_inactive));
}
private class MainPagerAdapter extends FragmentPagerAdapter {
public MainPagerAdapter(FragmentManager fm) {
super(fm);
}
@Override
public Fragment getItem(int position) {
switch (position) {
case 0:
return (frgTabMyFirstTab = new Tab1MyFirstTab());
case 1:
return (frgTabRecipes = new Tab2Recipes());
case 2:
return (frgTabProducts = new Tab3Products());
case 3:
return (frgTabFAQ = new Tab4FAQ());
case 4:
return (frgTabSettings = new Tab5Settings());
}
return null;
}
每个选项卡都使用 SherlockFragment 以类似的方式创建:
public class Tab3Products extends SherlockFragment{
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// TODO Auto-generated method stub
View view = inflater.inflate(R.layout.tab3products, container, false);
/*
ListView list = (ListView) view.findViewById(R.id.lvMySpecialList);
ArrayAdapter<String> adapter = new ArrayAdapter<String>(getActivity(), android.R.layout.simple_list_item_1, mySpecialKeys);
list.setAdapter(adapter);
*/
return view;
}
问题是。
我的第一个选项卡需要有 2 个部分,上部应该是带有 2 个幻灯片的滑块,下部应该是带有 3 个项目的列表。如何在片段中膨胀列表。我尝试使用 ArrayAdapter(正如您在注释代码中看到的那样),并从 StringArray 获取字符串,但这会使我的应用程序因所有 android.View.coreographer 问题而崩溃。
当我点击第一个列表项时,整个 Tab1 需要将布局更改为类似的半图像/半列表,但它需要是不同的片段或活动。
- 因为 2. - 我应该使用 SherlockFragment(像我一样)还是 SherlockFragmentActivity 作为我的片段?
因此,如果现在有人可以提供帮助,因为标准列表和填充它们不起作用,显然我缺少一些知识片段如何工作以及如何在同一选项卡中启动不同的片段/活动。