我已经在视图分页器中实现了滑动,有三个页面,即片段1,片段2和片段3.现在我想添加tab-host,其中包含5个在Fragment 3中具有不同视图的选项卡。然后最终有7个页面在视图中寻呼机。但是标签应该只在片段3中可见。
如何在片段3中添加标签?
public class HomeActivity extends FragmentActivity {
// page adapter between fragment list and view pager
public static PagerAdapter mPagerAdapter;
// view pager
public ViewPager mPager;
// activity data
public String p2text, p3text;
public static List<Fragment> fragments;// = buildFragments();
// / ArrayList<String> categories = {"1","2","3","4","5","6","7","8"};
ArrayList<String> categories = new ArrayList<String>();
static final String LOG_TAG = "HomeActivity";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
fragments = new ArrayList<android.support.v4.app.Fragment>();
categories.add("1");
categories.add("2");
categories.add("3");
categories.add("4");
categories.add("5");
categories.add("6");
categories.add("7");
addFragments(FragmentMore.class.getName(), 1);
addFragments(FragmentMain.class.getName(), 2);
addFragments(FragmentChatView.class.getName(), 3);
mPager = (ViewPager) super.findViewById(R.id.pager);
mPagerAdapter = new PagerAdapter(this, getSupportFragmentManager(), fragments, categories);
mPager.setAdapter(mPagerAdapter);
mPager.setCurrentItem(1);
}
public void addFragments(String className, int position) {
// List<android.support.v4.app.Fragment> fragments = new
// ArrayList<android.support.v4.app.Fragment>();
// (int i = 0; i<categories.size(); i++) {
Bundle b = new Bundle();
b.putInt("position", position);
fragments.add(Fragment.instantiate(this, className, b));
// }
// return fragments;
}
public void removeFragments(String className, int position) {
// List<android.support.v4.app.Fragment> fragments = new
// ArrayList<android.support.v4.app.Fragment>();
// (int i = 0; i<categories.size(); i++) {
Bundle b = new Bundle();
b.putInt("position", position);
fragments.remove(Fragment.instantiate(this, className, b));
// }
// return fragments;
}
private List<android.support.v4.app.Fragment> buildFragments() {
List<android.support.v4.app.Fragment> fragments = new ArrayList<android.support.v4.app.Fragment>();
for (int i = 0; i < categories.size(); i++) {
Bundle b = new Bundle();
b.putInt("position", i);
fragments.add(Fragment.instantiate(this, FragmentSearch.class.getName(), b));
}
return fragments;
}
@Override
public void onResume() {
super.onResume();
Log.e(LOG_TAG, "onResume");
}
@Override
public void onPause() {
super.onPause();
Log.e(LOG_TAG, "onPause");
}
}
答案 0 :(得分:0)
我认为你要做的就是在这里完成:
通过这两个链接,您应该能够开发出您想要的内容。
希望有所帮助!
答案 1 :(得分:0)
使用ViewPager添加标签并不简单。 Google网页是@ Creating Swipe Views with Tabs。搜索“将标签添加到操作栏”的文本。它使用 ActionBar .TabListener和 ActionBar .addTab来制作GUI。
完整的示例代码是@ FragmentTabs.java。我认为这与Google页面的代码相同。
还有一个Google项目@ SlidingTabsBasic,我已经使用过它并且有效。 build.gradle文件可能存在一个小问题。
备注:Google网页使用{21}弃用的ActionBar.TabListener
和addTab
方法。但是......它更容易实现。如果你把它作为一个大学项目,使用ActionBar可能是更明智的选择,就像一个想法。
祝你好运,玩得开心,让我们发布...