gpt4 book ai didi

Android TabLayout(API 22)在没有 ViewPager 的情况下向每个选项卡添加 fragment

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:28:16 26 4
gpt4 key购买 nike

我正在试用 Android 的新 TabLayout类在我的 ActionBar 下方添加两个选项卡。每个选项卡将承载不同的 fragment 。

此外,我不希望能够在我的两个选项卡之间滑动 - 要在我的选项卡之间导航,我希望能够仅触摸我想要导航到的选项卡。

在我的 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 方法,以便在两个选项卡之间切换导致分别显示两个不同的 fragment 。关于独立于 ViewPager 的新 TabLayout,我在网上找不到太多信息。

有什么线索吗?谢谢!

最佳答案

@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,它是用作 Activity fragment 容器的 FrameLayout

IOW,您更改 fragment 以响应 TabLayout 的方式与您更改 fragment 以响应操作栏项目点击、抽屉导航项目点击或任何其他 GUI 事件的方式相同。

关于Android TabLayout(API 22)在没有 ViewPager 的情况下向每个选项卡添加 fragment ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30952868/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com