Android中的開發需要兼容手機和平板,兩個方面。這就引入了碎片的概念。(注意:這里用的Fragment強烈建議使用support-v4庫中的Fragment)
碎片:是一種可以嵌入在活動當中的UI片段,它能讓程序更加合理和充分的利用大屏幕的空間.
對於碎片來說我們一般用到的都是動態的添加碎片,使碎片的作用得到了很好地利用。
如何動態的添加碎片呢?
動態添加碎片的主要有以下5個步驟:
1.創建待添加的碎片實例
2.獲取FragmentManager,在活動中可以直接通過getSupportFragmentManager()方法得到
3.開啟一個事務,通過調用beginTransaction()方法開啟
4.向容器中添加或替換碎片,一般使用replace()方法實現,需要傳入容器的id和待添加的碎片實例
5.提交事務,調用commit()方法來完成
如下面一個例子:
首先需要創建碎片實例:
在activity_main.xml中,創建一個FrameLayout控件:
<FrameLayout android:id="@+id/right_layout" android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="1" ></FrameLayout>
其次在MainActivity中代碼如下:
public class MainActivity extends AppCompatActivity { private Button button; //動態添加碎片的步驟一共以下5步 // 1.創建待添加的碎片實例 //2.獲取FragmentManager,在活動中可以直接通過getSupportFragmentManager()方法得到 //3.開啟一個事務,通過調用beginTransaction()方法開啟 //4.向容器中添加或替換碎片,一般使用replace()方法實現,需要傳入容器的id和待添加的碎片實例 //5.提交事務,調用commit()方法來完成 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); button = (Button) findViewById(R.id.button); //調用replaceFragment方法先將RightFragment這個碎片添加進去 replaceFragment(new RightFragment()); button.setOnClickListener(new View.OnClickListener(){ @Override public void onClick(View view) { switch (view.getId()){ case R.id.button://當點擊左邊碎片的按鈕時調用replaceFragment方法將AnotherRightFragment這個碎片添加進去 replaceFragment(new AnotherRightFragment()); break; default: break; } } }); } private void replaceFragment(Fragment fragment) { FragmentManager fragmentManager = getSupportFragmentManager(); FragmentTransaction transaction = fragmentManager.beginTransaction(); transaction.replace(R.id.right_layout,fragment); //在按下返回鍵的時候不是退出程序而是退到第一個碎片使用transaction的addToBackStack方法,值一般為null transaction.addToBackStack(null); transaction.commit(); } }