【问题标题】:Android TabLayout (API 22) add fragment to each tab without ViewPagerAndroid TabLayout (API 22) 在没有 ViewPager 的情况下向每个选项卡添加片段
【发布时间】:2015-09-06 07:20:35
【问题描述】:

我正在尝试 Android 的新 TabLayout 类,以便在我的 ActionBar 下方添加两个选项卡。每个选项卡将承载不同的片段。

另外,我不希望能够在我的两个标签之间滑动 - 要在我的标签之间导航,我希望能够只触摸我想要导航到的标签。

在我的 MainActivity 中,我有:

public class MainActivity extends ActionBarActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    setContentView(R.layout.activity_main);
    TabLayout tabLayout = (TabLayout) findViewById(R.id.tab_layout);
    tabLayout.addTab(tabLayout.newTab().setText("Newsfeed"));
    tabLayout.addTab(tabLayout.newTab().setText("Random"));

    tabLayout.setOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
        @Override
        public void onTabSelected(TabLayout.Tab tab) {
            // IDEALLY HERE, I'd like to do something like
            // tab.setFragment(new MainFragment()).
        }

        @Override
        public void onTabUnselected(TabLayout.Tab tab) {

        }

        @Override
        public void onTabReselected(TabLayout.Tab tab) {

        }
    });
 }

所以我想覆盖我的 onTabSelected 和 onTabReselected 方法,以便在两个选项卡之间切换会导致分别显示两个不同的片段。关于独立于 ViewPager 的新 TabLayout,我在网上找不到太多信息。

有什么线索吗?谢谢!

【问题讨论】:

    标签: android android-fragments


    【解决方案1】:
    @Override
    public void onTabSelected(TabLayout.Tab tab) {
      Fragment f=heyWhatFragmentGoesInThisTab(tab);
    
      getFragmentManager()
        .beginTransaction().replace(R.id.where_the_tab_contents_go, f).commit();
    }
    

    你需要写的地方:

    • heyWhatFragmentGoesInThisTab() 返回应根据所选选项卡显示的Fragment,并且

    • R.id.where_the_tab_contents_go,这是一个FrameLayout,用作活动片段的容器

    IOW,您更改片段以响应TabLayout,就像您更改片段以响应操作栏项目点击、导航抽屉项目点击或任何其他 GUI 事件一样。

    【讨论】:

    • 这样不让用户在Fragment之间滑动,因为没有ViewPager,如何添加Swipe Action同时使用没有ViewPager的Fragment
    • @OmarHossam:我不知道。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多