2013-09-21 26 views
8

Tôi có một LinearLayout không có con xemđộng thêm nhiều mảnh vỡ để bố trí hoạt động của tôi

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="horizontal" > 


</LinearLayout> 

và tôi muốn tự động thêm một mảnh hoặc hai mảnh theo yêu cầu trong đó. tôi biết việc thêm một đoạn vào nó nhưng làm cách nào tôi có thể thêm hai đoạn vào một đoạn động với nó. Tôi có hai mảnh và trong mỗi đoạn tôi viết như sau oncreateview

public View onCreateView(LayoutInflater inflater, ViewGroup container, 
      Bundle savedInstanceState) { 
     // TODO Auto-generated method stub 
     //return super.onCreateView(inflater, container, savedInstanceState); 
     View v=inflater.inflate(R.layout.frag1, container, false); 
     v.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT)); 

     return v; 
    } 

tôi đang cố gắng để thêm bằng cách sử dụng đoạn mã sau nhưng đoạn thứ hai sẽ đến trong vòng đầu tiên.

FragmentTransaction ft=fm.beginTransaction(); 
     frag1 f=new frag1(); 
     frag2 ff=new frag2(); 


     ft.add(android.R.id.content, f); 
     ft.add(android.R.id.content, ff); 

     ft.commit(); 

vui lòng cập nhật cách thực hiện việc này. nhờ

+1

+1 Tôi cũng đang tìm kiếm câu trả lời cho câu hỏi này ... Dường như là một câu hỏi quan trọng và chưa tôi không thể tìm thấy một câu trả lời:/- tự động thêm hai đoạn trong một bố cục hoạt động - điều đó có vẻ như là những thứ khá chuẩn đối với tôi nhưng nó không được đề cập ở bất cứ nơi nào afaik. – AgentKnopf

+0

Cập nhật cho điều này là bạn không thể thêm hai vào android.R.id.content nhưng vào Bố cục như LinearLayout hoặc anyother với id như sau: nếu id là id của nhóm xem thì ft.add (R.id .one, f, "one"); ft.add (R.id.one, ff, "two"); ft.commit(); vui lòng thử điều này và cập nhật – user2779311

+0

Cảm ơn bạn đã liên hệ lại với tôi :)! Trên thực tế bây giờ tôi đã tìm thấy một cách để lưu trữ hai mảnh trong một Hoạt động. Tất cả những gì cần phải làm là có hai thùng chứa trong bố cục - một cho mỗi đoạn và sau đó đặt trọng lượng trên chúng. Giống như: Container đầu tiên chiếm 30% không gian, container thứ hai chiếm 70% không gian. Nếu bạn cần thêm chi tiết, hãy cho tôi biết. Hầu hết trong số đó được thiết lập trong tệp sơ đồ bố trí, do đó, bạn sẽ thay đổi giao dịch phân đoạn của mình để thêm từng giao dịch vào id của vùng chứa mục tiêu của nó. – AgentKnopf

Trả lời

0

này shoudl làm Trick:

FragmentTransaction ft=fm.beginTransaction(); 
    frag1 f=new frag1(); 
    frag2 ff=new frag2(); 
    LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT)); 

    ft.add(android.R.id.content, f).commit(); 
    FragmentTransaction ft=fm.beginTransaction(); // this line might be unnescessary 
    ft.add(android.R.id.content, ff).commit(); 
+0

cũng giống như tôi đã viết nhưng nó không hoạt động. – user2779311

+0

Nó sẽ hoạt động nếu bạn đặt LayoutParams của LinearLayout chính của bạn thành wrap_content. – Ehsan

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