Fragment,androidfragment
Fragment 是輕量級的,比Activity 快,適合約一個APP 內頁面的跳轉。
1: 在MainActivity 中啟動一個fragment BlankFragment:
public class MainActivity extends AppCompatActivity implements BlankFragment.OnFragmentInteractionListener{ @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); if(savedInstanceState == null){ getSupportFragmentManager().beginTransaction() .add(R.id.container,new BlankFragment()) .commit(); } } @Override public void onFragmentInteraction(Uri uri) { }}
2、 在 BlankFragment 呈現一個按鈕,點擊按鈕,轉到另一個fragment:
@Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View rootView = inflater.inflate(R.layout.fragment_main,container,false); rootView.findViewById(R.id.btnShowAnotherFragment).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { getFragmentManager().beginTransaction() .addToBackStack(null) .replace(R.id.container, new AnotherFragment()).commit(); } }); return rootView; }
3、 在另一個fragment 增加一個返回按鈕,返回到上一個fragment:
public class AnotherFragment extends Fragment { @Nullable @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { View root = inflater.inflate(R.layout.fragment_another,container,false); root.findViewById(R.id.btnBack).setOnClickListener(new View.OnClickListener(){ @Override public void onClick(View view) { getFragmentManager().popBackStack(); } }); return root; }}
在第一個fragment A 跳轉 到 第二個fragment B時:
執行 B.onCreate -- A.onPause -- A.onDestoryView --b.onCreateView , 在B頁面點後退,執行 B.onPause -- B.onDestory