我在片段中使用 Web 视图。如何返回网络视图

I am using Web View inside a fragment. how to go back in web view

这是网络视图片段

public class 主页扩展片段 {

public Home() {
    // Required empty public constructor
}

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
    // Inflate the layout for this fragment
    View v = inflater.inflate(R.layout.fragment_home, container, false);
    WebView webView = (WebView)v.findViewById(R.id.webView1);
    webView.getSettings().setJavaScriptEnabled(true); 
    webView.setWebViewClient(new WebViewClient()); 
    webView.loadUrl("https://www.google.com"); 
    return v;

}

}

我在不在主 activity 中的其他片段中创建了 Web 视图,当我按下后退按钮时,应用程序将关闭。那么如何只在网络视图中返回(而不是通过片段)?请给我一个解决方案。

这是我的主要内容activity

public class MainActivity extends AppCompatActivity implements BottomNavigationView.OnNavigationItemSelectedListener {

private static final String TAG = "MainActivity";

BottomNavigationView bottomNavigationView;



@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    bottomNavigationView = findViewById(R.id.bottom_navigation_view);

    bottomNavigationView.setOnNavigationItemSelectedListener(this);

    bottomNavigationView.setSelectedItemId(R.id.navigation_home);
}

Home homeFragment = new Home();
Live_And_Event_Schedule live_and_event_scheduleFragment = new Live_And_Event_Schedule();
Photos photosFragment = new Photos();
Videos videosFragment = new Videos();
About aboutFragment = new About();

@Override
public boolean onNavigationItemSelected(@NonNull MenuItem item) {

    switch (item.getItemId()){
        case R.id.navigation_home:
            getSupportFragmentManager().beginTransaction().setCustomAnimations(R.anim.fade_in, R.anim.fade_out).replace(R.id.center, homeFragment).commit();
            return true;

        case R.id.navigation_live_and_event_schedule:
            getSupportFragmentManager().beginTransaction().setCustomAnimations(R.anim.fade_in, R.anim.fade_out).replace(R.id.center, live_and_event_scheduleFragment).commit();
            return true;

        case R.id.navigation_photos:
            getSupportFragmentManager().beginTransaction().setCustomAnimations(R.anim.fade_in, R.anim.fade_out).replace(R.id.center, photosFragment).commit();
            return true;

        case R.id.navigation_videos:
            getSupportFragmentManager().beginTransaction().setCustomAnimations(R.anim.fade_in, R.anim.fade_out).replace(R.id.center, videosFragment).commit();
            return true;

        case R.id.navigation_about:
            getSupportFragmentManager().beginTransaction().setCustomAnimations(R.anim.fade_in, R.anim.fade_out).replace(R.id.center, aboutFragment).commit();
            return true;
    }

    return false;
}

}

您可以覆盖 Activity 中的 onBackPressed。在 addToBackStack

之前保存所有 fragmentTransaction
@Override
public void onBackPressed() {

    int count = getSupportFragmentManager().getBackStackEntryCount();

    if (count == 0) {
        super.onBackPressed();
        //add extra code 
    } else {
        getSupportFragmentManager().popBackStack();
    }
}