片段交易显示下面的标签片段

时间:2018-04-26 10:38:44

标签: java android android-fragments

我正在创建一个使用Swiping Tabs Fragment启动的应用程序,但我还想使用Fragment Transaction创建一个Preferences菜单。当我在我的应用程序中按“设置”按钮时,首选项菜单确实出现并且是交互式的,但布局似乎是透明的,显示下面的选项卡。有没有什么可以解决这个问题,还是有更好的方法?

从选项中调用首选项菜单的代码:

public boolean onOptionsItemSelected(final MenuItem item) {
    switch (item.getItemId()) {
        case android.R.id.home:
            getFragmentManager().popBackStackImmediate();
            break;
        case R.id.logout:
            FirebaseAuth.getInstance().signOut();
            finish();
            startActivity(new Intent(this, Activity_Main.class));
            break;
        case R.id.action_settings:
            getFragmentManager().beginTransaction()
                    .replace(android.R.id.content, new Fragment_Settings()).addToBackStack(null)
                    .commit();
            break;
    }
    return true;
}

调用Tabs Fragments的代码:

public class TabsPagerAdapter extends FragmentPagerAdapter {

    public TabsPagerAdapter(FragmentManager fm) {
        super(fm);
    }

    @Override
    public android.support.v4.app.Fragment getItem(int index) {

        switch (index) {
            case 0:
                // Top Rated fragment activity
                return new Fragment_Flower();
            case 1:
                // Games fragment activity
                return new Fragment_Overview();
        }

        return null;
    }

    @Override
    public int getCount() {
        // get item count - equal to number of tabs
        return 2;
    }

}

在onCreate中初始化交易:

startService(new Intent(this, SensorListener.class));
    if (b == null) {
        // Create new fragment and transaction
        Fragment newFragment = new Fragment();
        FragmentTransaction transaction = getFragmentManager().beginTransaction();

        //Replace whatever is in the fragment_container view with this
        // fragment,
        // and add the transaction to the back stack
        transaction.replace(android.R.id.content, newFragment);
        transaction.addToBackStack(null);

        // Commit the transaction
        transaction.commit();
    }

任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:0)

只需在布局文件中设置背景颜色即可。它可以避免透明的背景。