Фрагмент транзакции показывает фрагмент вкладки ниже - PullRequest
0 голосов
/ 26 апреля 2018

Я делаю приложение, которое запускается с фрагментом Swiping Tabs, но я также хочу, чтобы в меню «Настройки» использовалась транзакция фрагмента. Когда я нажимаю кнопку «Настройки» в моем приложении, меню настроек появляется и становится интерактивным, но макет выглядит прозрачным, показывая вкладки ниже. Можно ли что-то сделать, чтобы это исправить, или есть лучший метод?

Код, который вызывает меню настроек из опций:

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:

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 голосов
/ 26 апреля 2018

Просто установите цвет фона в вашем файле макета. Это может избежать прозрачного фона.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...