2011-10-17 33 views
8

Kính gửi người StackOverflow,Làm cách nào để sử dụng FragmentManager để hiển thị Fragment A, B, C, ... trong FrameLayout?

Tôi hiện là một vấn đề lớn trong ứng dụng Android của mình.

Tôi đang sử dụng mảnh vỡ về mọi hoạt động của tôi và tôi đọc tất cả các doc ở đây: http://developer.android.com/guide/topics/fundamentals/fragments.html

ứng dụng của tôi bây giờ có một cái nhìn rất mát mẻ trên điện thoại và máy tính bảng.

Câu hỏi của tôi:

Tôi có một bố trí hiển thị một mảnh vỡ được bao gồm trong một FrameLayout (xem ảnh chụp màn hình ở phía dưới)

Vì vậy, đây là một ảnh chụp màn hình với Fragment A.

Bây giờ, tôi muốn khi nhấp vào nút bên trái, để thay thế Phân đoạn A bằng Phân đoạn B hoặc C hoặc ...

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="horizontal" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 
    <fragment android:name="com.stackoverflow.question.FRAGMENT_A" 
      android:id="@+id/list" 
      android:layout_weight="1" 
      android:layout_width="0dp" 
      android:layout_height="match_parent" /> 
</FrameLayout> 

Như bạn thấy trong xml của tôi, FRAGMENT_A được mã hóa cứng.

Hãy tưởng tượng tôi muốn chuyển đổi giữa 6 đoạn khác nhau, những gì shoulmd tôi làm gì? Đặt tất cả 6 Phân đoạn của tôi vào XML, hoặc có cách để thay thế chương trình FRAGMENT_A bằng FRAGMENT_B, C, D, E, v.v.

Cảm ơn rất nhiều sự giúp đỡ của bạn.

enter image description here

Trả lời

14

sử dụng để thay thế FragmentTransaction mảnh.

bạn có thể thực hiện thay thế các đoạn theo chương trình.

FragmentTransaction ft = getSupportFragmentManager().beginTransaction(); 
FragmentB fb = new FragmentB(); 
ft.replace(R.id.list, fb); 
ft.addToBackStack("replacingFragmentA"); 
ft.commit(); 

thêm vào ngăn xếp là tùy chọn.

Các vấn đề liên quan