17

Giả sử tôi có một vài mảnh:đoạn placehoder trong cách bố trí

public class FirstFragment extends Fragment { ... } 

public class SecondFragment extends Fragment { ... } 

public class ThirdFragment extends Fragment { ... } 

Tôi cũng có một hoạt động chính, nội dung của nó (main.xml):

<LinearLayout ...> 

    <!-- How to have a fragment placehold without specify which fragment show here? --> 
    <fragment> 

</LinearLayout> 

Câu hỏi của tôi là, trong ở trên tệp bố cục, làm cách nào tôi có thể xác định một trình giữ chỗ đoạn đoạn mà không chỉ định phân đoạn nào hiển thị ở đây và sau đó trong mã java Hoạt động của tôi, thổi phồng một đoạn thích hợp cho trình giữ chỗ?

Có thể và cách thực hiện?

Trả lời

31

Có thể. Trong main.xml của bạn, xác định một giữ chỗ cho đoạn, chúng ta hãy gọi nó là "fragment_placeholder":

<LinearLayout ...> 
<FrameLayout android:id="@+id/fragment_placeholder" android:layout_weight="1" 
     android:layout_width="0px" 
     android:layout_height="match_parent" /> 
</LinearLayout> 

Trong hoạt động của bạn, bất cứ khi nào bạn muốn tải đoạn của bạn:

YourFragment fragment = new YourFragment(); 
FragmentTransaction ft = getFragmentManager().beginTransaction(); 
ft.replace(R.id.fragment_placeholder, fragment); 
ft.commit(); 
+1

ft.replace (...) nên được thay đổi thành ft.add (...) trong trường hợp của tôi. –

+0

có và android: layout_width phải được đặt thành wrap_content – Markus

+0

Xem phần này để biết thêm thông tin: http://developer.android.com/training/basics/fragments/fragment-ui.html – Hardy

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