如何使用好Fragment?
app UI開發確實不是自己的長處,但是,從產品化的角度看,又必須學習之,並且舉一反三用好,
僅記錄自己如何使用Fragment。以此記錄,瞭解其基礎及本質、希望深入回答activity fragment floatview的交替使用
在資源、效率、場景中使用
如何使用好Fragment? app UI開發確實不是自己的長處,但是,從產品化的角度看,又必須學習之,並且舉一反三用好, 僅記錄自己如何使用Fragment。以此記錄,瞭解其基礎及本質、希望深入回答activity fragment floaTextiew的交替使用 在資源、效率、場景中使用 package com.example.mainactivity; import android.annotation.SuppressLint; import android.app.Activity; import android.app.FragmentManager; import android.app.FragmentTransaction; import android.os.Bundle; import android.util.Log; import android.view.View; import android.widget.FrameLayout; import android.widget.TexTextiew; public class MainActivity extends Activity { final String TAG = "carl_MainActivity"; TexTextiew mFragment1Text ; TexTextiew mFragment2Text ; TexTextiew mFragment3Text ; FrameLayout mainll ; FragmentManager manager ; FragmentTransaction transaction; Fragment1 fragment1 = null; Fragment2 fragment2 = null; Fragment3 fragment3 = null; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); this.setContenTextiew(R.layout.activity_main); // transaction = manager.beginTransaction(); iniTextiew(); initListener(); initData(); Log.d(TAG,"onCreate"); } private void initListener() { mFragment1Text.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { Log.d(TAG,"mFragment1Text"); FragmentTransaction transaction = manager.beginTransaction(); if (fragment2 != null ) { Log.d(TAG,"mFragment1Text 1 "); transaction.hide(fragment2); } if (fragment3 != null ) { Log.d(TAG,"mFragment1Text 2 "); transaction.hide(fragment3); } if (fragment1 == null ) { Log.d(TAG,"mFragment1Text 3 "); fragment1 = new Fragment1(); transaction.add(R.id.main_ll, fragment1,"3");; }else { Log.d(TAG,"mFragment1Text 4 "); transaction.show(fragment1); } Log.d(TAG,"mFragment1Text 5 "); transaction.commit(); } }); mFragment2Text.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { Log.d(TAG,"mFragment2Text"); FragmentTransaction transaction = manager.beginTransaction(); if (fragment1 != null ) { Log.d(TAG,"mFragment2Text 1 " ); transaction.hide(fragment1); } if (fragment3 != null ) { Log.d(TAG,"mFragment2Text 2 "); transaction.hide(fragment3); } if (fragment2 == null ) { Log.d(TAG,"mFragment2Text 3"); fragment2 = new Fragment2(); transaction.add(R.id.main_ll, fragment2,"2");; }else { Log.d(TAG,"mFragment2Text 4 "); transaction.show(fragment2); } Log.d(TAG,"mFragment2Text 5 "); transaction.commit(); } }); mFragment3Text.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { Log.d(TAG,"mFragment3Text"); FragmentTransaction transaction = manager.beginTransaction(); if (fragment3 != null ) { Log.d(TAG,"mFragment3Text 1 "); transaction.hide(fragment3); } if (fragment2 != null ) { Log.d(TAG,"mFragment3Text 2 "); transaction.hide(fragment2); } if (fragment3 == null ) { Log.d(TAG,"mFragment3Text 3 "); fragment3 = new Fragment3(); transaction.add(R.id.main_ll, fragment3,"3");; }else { Log.d(TAG,"mFragment3Text 4 "); transaction.show(fragment3); } Log.d(TAG,"mFragment3Text 5 "); transaction.commit(); } }); } private void initData() { manager = this.getFragmentManager(); } private void iniTextiew() { mFragment1Text = (TexTextiew) findViewById(R.id.fragment1_Text); mFragment2Text = (TexTextiew) findViewById(R.id.fragment2_Text); mFragment3Text = (TexTextiew) findViewById(R.id.fragment3_Text); mainll = (FrameLayout) findViewById(R.id.main_ll); } @Override protected void onStart() { super.onStart(); Log.d(TAG,"onCreate"); } @Override protected void onRestart() { super.onRestart(); Log.d(TAG,"onRestart"); } @Override protected void onResume() { super.onResume(); Log.d(TAG,"onResume"); } @Override protected void onPause() { super.onPause(); Log.d(TAG,"onPause"); } @Override protected void onStop() { super.onStop(); Log.d(TAG,"onStop"); } @Override protected void onDestroy() { super.onDestroy(); Log.d(TAG,"onDestroy"); } }