【问题标题】:Why there is no default tab is appearing when i open my application? [duplicate]为什么我打开应用程序时没有出现默认选项卡? [复制]
【发布时间】:2020-05-09 09:48:12
【问题描述】:

我只想在这个应用程序中将“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();
    }
}

【问题讨论】:

  • 当我运行我的应用程序时,它只显示空白 Activity 而不是默认的 tab1

标签: java android


【解决方案1】:

将以下行添加到 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();
    }


【讨论】:

  • 但它仍然没有在“Tab1”中显示片段?
  • 尝试我编辑的新答案
猜你喜欢
  • 2013-04-11
  • 1970-01-01
  • 2023-03-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-02-16
  • 1970-01-01
  • 2020-08-15
相关资源
最近更新 更多