java - 为什么当我打开我的应用程序时没有出现默认选项卡?
问题描述
我只想在这个应用程序中将“Tab1”设置为默认选项卡,为此我true
在这段代码中设置了'
tabLayout.addTab(tabLayout.newTab().setText("Tab1"), true);
但是,这不起作用。
public class MainActivity extends AppCompatActivity implements TabLayout.OnTabSelectedListener {
Toolbar toolbar;
Fragment fragment;
TabLayout tabLayout;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
tabLayout = findViewById(R.id.tablayout);
toolbar = findViewById(R.id.toolbar);
toolbar.setTitle("lalit kumar");
setSupportActionBar(toolbar);
tabLayout.addTab(tabLayout.newTab().setText("Tab1"), true);
tabLayout.addTab(tabLayout.newTab().setText("Tab2"));
tabLayout.addTab(tabLayout.newTab().setText("Tab3"));
tabLayout.addOnTabSelectedListener(this);
}
@Override
public void onTabSelected(TabLayout.Tab tab) {
fragmentimplement(tab.getPosition());
}
@Override
public void onTabUnselected(TabLayout.Tab tab) {
}
@Override
public void onTabReselected(TabLayout.Tab tab) {
}
public void fragmentimplement(int position) {
switch (position) {
case 0:
fragment = new AFragment();
break;
case 1:
fragment = new BFragment();
break;
case 2:
fragment = new CFragment();
break;
}
getSupportFragmentManager().beginTransaction().replace(R.id.frame, fragment).commit();
}
}
解决方案
将以下行添加到 Oncreate 方法的代码末尾
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
tabLayout = findViewById(R.id.tablayout);
toolbar = findViewById(R.id.toolbar);
toolbar.setTitle("lalit kumar");
setSupportActionBar(toolbar);
tabLayout.setOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
@Override
public void onTabSelected(TabLayout.Tab tab) {
setCurrentTabFragment(tab.getPosition());
}
@Override
public void onTabUnselected(TabLayout.Tab tab) {
}
@Override
public void onTabReselected(TabLayout.Tab tab) {
}
});
tabLayout.addTab(tabLayout.newTab().setText("Tab1"), true);
tabLayout.addTab(tabLayout.newTab().setText("Tab2"));
tabLayout.addTab(tabLayout.newTab().setText("Tab3"));
}
private void setCurrentTabFragment(int tabPosition)
{
switch (tabPosition)
{
case 0 :
replaceFragment(fragmentOne);
break;
case 1 :
replaceFragment(fragmentTwo);
break;
case 3 :
replaceFragment(fragmentTwo);
break;
}
}
public void replaceFragment(Fragment fragment) {
getSupportFragmentManager()
.beginTransaction()
.replace(R.id.fragment_container, fragment)
.commit();
}
推荐阅读
- android - react-native-camera > takePictureAsync() 在 android 设备中抛出错误代码 E_CAMERA_BAD_VIEWTAG
- spring - 如何在 Spring 中设置全局上下文变量?
- r - 使用 lapply() 计算比例
- ios - VisionKit 框架 iOS 13 中的 iOS 应用程序崩溃
- python - 解析字符串以查找元素
- javascript - 从函数获取坐标数组到vue突变
- sql - 从表中选择“姓名”+ (':__________')
- regex - 正则表达式替代负前瞻
- fullscreen - 如何解决视频全屏后被导航栏覆盖的问题
- azure - 将后端服务部署到 Azure Web 应用服务时出现 HTTP 错误 500.30