如何为每个选项卡(底栏)提供布局

时间:2016-08-24 17:16:20

标签: android

我正在使用此库https://github.com/roughike/BottomBar来创建BottomBar 但到目前为止,我无法为每个标签添加特定的布局。

public class MainActivity extends Activity {
    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        BottomBar bottomBar = (BottomBar) findViewById(R.id.bottomBar);
        bottomBar.setOnTabSelectListener(new OnTabSelectListener() {
            @Override
            public void onTabSelected(@IdRes int tabId) {
                if (tabId == R.id.tab_favorites) {
                    // The tab with id R.id.tab_favorites was selected,
                    // change your content accordingly.
                }
            }
        });
    }
}

我不知道该怎么做,因为它会改变你的内容。任何代码示例都会有所帮助。

1 个答案:

答案 0 :(得分:1)

<强> 1)

FrameLayoutBottomBar添加到activity_main.xml

您的FrameLayout将成为您的Fragment容器。所以,让我们像fragment_container一样给它。

<强> 2)

创建与底栏选项卡一样多的片段。还为它们创建布局。

第3)

按照以下方式编辑您的监听器

mBottomBar.setOnMenuTabClickListener(new OnMenuTabClickListener() {

            @Override
            public void onMenuTabSelected(@IdRes int menuItemId) {
                switch (menuItemId) {
                    case R.id.frag_1:
                        commitFragment(new FragmentOne());
                        break;
                    case R.id.frag_2:
                        commitFragment(new FragmentTwo());
                        break;
                    case R.id.frag_3:
                        commitFragment(new FragmentThree());
                        break;
                }
            }

其中R.id.frag_1-3是每个片段的主要布局的id。

这是commitFragment方法:

private void commitFragment(Fragment fragment){
        android.support.v4.app.FragmentTransaction fragmentTransaction = getSupportFragmentManager().beginTransaction();
        fragmentTransaction.replace(R.id.fragment_container, fragment);
        fragmentTransaction.commit();
}