簡體   English   中英

片段中的“后退”按鈕返回到主屏幕

[英]Back button in fragment goes back to Home screen

我是Android和片段的新手,所以我想我錯過了一些重要的東西。 我有一個主要活動和2個片段,第二個片段替換了第一個片段,該片段替換了活動。 我提交了一個替換事務,但是由於某些原因,每次我按下后退按鈕時(也從第二個片段開始),我都不會忘記調用addToBackStack(null) ,該應用程序返回桌面屏幕,並且該應用程序可以通過最近的應用程序屏幕使用,始終顯示主要活動。

為什么會這樣呢?

MainActivity.java

...
        else if (id == R.id.action_settings) {

        FragmentTransaction fragmentTransaction = getFragmentManager()
                .beginTransaction();
        fragmentTransaction.setCustomAnimations(R.anim.enter, R.anim.exit);
        fragmentTransaction.replace(R.id.MainLayout,
                new SettingsFragment());
        fragmentTransaction.addToBackStack(null);
        fragmentTransaction.commit();
        return true;
    }

SettingsFragment.java

public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState){
...
        @Override
        public void onClick(View v) {

            FragmentTransaction fragmentTransaction = getFragmentManager()
                    .beginTransaction();
            fragmentTransaction.replace(R.id.MainLayout,
                    new SelectBackgroundFragment());
            fragmentTransaction.addToBackStack(null);
            fragmentTransaction.commit();

        }
    });

您需要在活動中覆蓋onBackPressed:

    @Override
    public void onBackPressed() {
        if (getFragmentManager().getBackStackEntryCount() > 0) {
            getFragmentManager().popBackStackImmediate();
        } else {
            super.onBackPressed();
        }
    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM