2013-09-21 11 views
8

mam linearlayout bez dziecka postrzegadynamicznie dodając kilka fragmentów mojego układu działalności

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


</LinearLayout> 

i chcę dynamicznie dodać jeden fragment lub dwa fragmenty zgodnie z wymogami w nim. Jestem świadomy dodawania do niego jednego fragmentu, ale jak mogę dynamicznie dodawać do niego dwa fragmenty. Mam dwa fragmenty i wewnątrz każdego fragmentu napisać następujące 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; 
    } 

próbuję dodać za pomocą następującego kodu ale drugi fragment nadchodzi nad pierwszym.

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(); 

uprzejmie zaktualizować sposób, w jaki można to zrobić. dzięki

+1

+1 Ja również poszukuje odpowiedzi na to pytanie ... wydaje takie ważne pytanie, a jednak nie mogę znaleźć odpowiedzi:/- dynamiczne dodawanie dwóch fragmentów w layoucie działania - to wydaje mi się dość standardowym materiałem, ale nie jest nigdzie pokryte afaik. – AgentKnopf

+0

Aktualizacja polega na tym, że nie można dodać dwóch do pliku android.R.id.content, ale do Układu, takiego jak LinearLayout lub anyother z identyfikatorem, jak poniżej: jeśli id ​​to id grupy widoku, to ft.add (R.id .one, f, "one"); ft.add (R.id.one, ff, "two"); ft.commit(); uprzejmie spróbuj tego i zaktualizuj – user2779311

+0

Dziękuję za skontaktowanie się z nami :)! Właściwie to znalazłem sposób na umieszczenie dwóch fragmentów w jednym działaniu. Wszystko, co trzeba zrobić, to mieć dwa pojemniki w układzie - po jednym dla każdego fragmentu, a następnie ustawić na nich ciężar. Na przykład: Pierwszy pojemnik dostaje 30% powierzchni, drugi pojemnik dostaje 70% powierzchni. Jeśli potrzebujesz więcej informacji, daj mi znać. Większość z nich jest skonfigurowana w pliku układu, więc należy zmienić transakcję fragmentów, aby dodać każdy do identyfikatora docelowego kontenera. – AgentKnopf

Odpowiedz

0

shoudl to zrobić lewy:

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

to jest to samo, co już piszę, ale nie działa. – user2779311

+0

Powinno to działać, jeśli ustawisz opcję LayoutParams twojego głównego LinearLayout na wrap_content. – Ehsan

Powiązane problemy