Android 界面(Fragment)切换

1.声明

private FragmentManager fManager;//管理Fragment界面

2.初始化

fManager = getSupportFragmentManager();

3.切换代码

	/**
     * Fragment切换
     *
     * @param index
     */
    private void setChoiceItem(int index) {
        FragmentTransaction transaction = fManager.beginTransaction();
        clearChoice();
        hideFragments(transaction);
        switch (index) {
            case 0:
                img_home.setBackgroundResource(R.drawable.home_select);
                if (home == null) {
                    home = new HomeFragment();
                    transaction.add(R.id.main_frame_layout, home);
                } else {
                    transaction.show(home);
                }

                break;

            case 1:
                img_message.setBackgroundResource(R.drawable.message_select);
                if (message == null) {
                    message = new MessageFragment();
                    transaction.add(R.id.main_frame_layout, message);
                } else {
                    transaction.show(message);
                }
                break;
            case 2:
                img_attention.setBackgroundResource(R.drawable.attention_select);
                if (attention == null) {
                    attention = new AttentionFragment();
                    transaction.add(R.id.main_frame_layout, attention);
                } else {
                    transaction.show(attention);
                }
                break;
            case 3:
                img_mine.setBackgroundResource(R.drawable.mine_select);
                if (mine == null) {
                    mine = new MineFragment();
                    transaction.add(R.id.main_frame_layout, mine);
                } else {
                    transaction.show(mine);
                }
                break;
        }
        transaction.commit();
    }

4.隐藏

	/**
     * 隐藏片段
     *
     * @param transaction
     */
    private void hideFragments(FragmentTransaction transaction) {
        if (home != null) {
            transaction.hide(home);
        }
        if (message != null) {
            transaction.hide(message);
        }
        if (attention != null) {
            transaction.hide(attention);
        }
        if (mine != null) {
            transaction.hide(mine);
        }
    }

5.清除选中样式

/**
     * 清除选中Fragment的样式
     */
    public void clearChoice() {
        img_home.setBackgroundResource(R.drawable.home_unselect);
        img_message.setBackgroundResource(R.drawable.message_unselect);
        img_attention.setBackgroundResource(R.drawable.attention_unselect);
        img_mine.setBackgroundResource(R.drawable.mine_unselect);
    }

猜你喜欢

转载自blog.csdn.net/llm20143304/article/details/83025977