今天学习了简单的Navigation:页面导航。
页面导航的简单例子:
MainAcitivity:
package com.example.navigation; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import androidx.navigation.NavController; import androidx.navigation.Navigation; import androidx.navigation.ui.NavigationUI; public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); NavController navController = Navigation.findNavController(this,R.id.fragment); NavigationUI.setupActionBarWithNavController(this,navController); } @Override public boolean onSupportNavigateUp() { NavController navController = Navigation.findNavController(this,R.id.fragment); return navController.navigateUp(); } }
Home_Fragment:
package com.example.navigation; import android.os.Bundle; import android.support.annotation.Nullable; import android.support.v4.app.Fragment; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.Button; import androidx.navigation.NavAction; import androidx.navigation.NavController; import androidx.navigation.Navigation; /** * A simple {@link Fragment} subclass. */ public class Home_Fragment extends Fragment { public Home_Fragment() { // Required empty public constructor } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { // Inflate the layout for this fragment return inflater.inflate(R.layout.fragment_home_, container, false); } @Override public void onActivityCreated(@Nullable Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); Button button = getView().findViewById(R.id.button); button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { NavController navController = Navigation.findNavController(v); navController.navigate(R.id.action_home_Fragment_to_detail_Fragment); } }); } }
Detail_Fragment:
package com.example.navigation; import android.os.Bundle; import android.support.annotation.Nullable; import android.support.v4.app.Fragment; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.Button; import androidx.navigation.NavController; import androidx.navigation.Navigation; /** * A simple {@link Fragment} subclass. */ public class Detail_Fragment extends Fragment { public Detail_Fragment() { // Required empty public constructor } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { // Inflate the layout for this fragment return inflater.inflate(R.layout.fragment_detail_, container, false); } @Override public void onActivityCreated(@Nullable Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); // Button button = getView().findViewById(R.id.button2); // button.setOnClickListener(new View.OnClickListener() { // @Override // public void onClick(View v) { // NavController navController = Navigation.findNavController(v); // navController.navigate(R.id.action_detail_Fragment_to_home_Fragment); // } // }); getView().findViewById(R.id.button2).setOnClickListener(Navigation.createNavigateOnClickListener(R.id.action_detail_Fragment_to_home_Fragment));//上方注释的整体写法,功能一样 } }
home_detail截图:
这个项目就是简单的跳转,
点击HOME按钮跳转到Detail
按DETAIL按钮或者左上方的返回箭头均可返回到HOME页面