Ho un LinearLayout con nessun bambino vedeaggiungendo dinamicamente molteplici frammenti di mio layout attività
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal" >
</LinearLayout>
e voglio aggiungere dinamicamente un frammento o due frammenti secondo i requisiti in esso. sono consapevole di aggiungere un frammento ad esso ma come posso aggiungere due ai frammenti dinamicamente ad esso. ho due frammenti e all'interno di ciascun frammento scrivo seguente 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;
}
sto provando ad aggiungere utilizzando il seguente codice ma il secondo frammento sta venendo sopra il primo.
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();
gentilmente aggiornamento Come questo può essere fatto. grazie
+1 Sto anche cercando la risposta a questa domanda ... Sembra una questione così importante, eppure non riesco a trovare una risposta:/- aggiungendo dinamicamente due frammenti in un layout di attività: mi sembra piuttosto roba standard ma non è coperto da nessuna parte. – AgentKnopf
L'aggiornamento a questo è che non è possibile aggiungere due a android.R.id.content ma a un layout come LinearLayout o altro con un id come di seguito: se id uno è l'id del viewgroup quindi ft.add (R.id .one, f, "uno"); ft.add (R.id.one, ff, "due"); ft.commit(); gentilmente provalo e aggiorna – user2779311
Grazie per avermi contattato :)! In realtà ho trovato un modo per ospitare due frammenti in una sola attività. Tutto ciò che è necessario fare è disporre di due contenitori nel layout, uno per ciascun frammento e quindi impostare un peso su di essi. Come: First Container ottiene il 30% dello spazio, il secondo contenitore ottiene il 70% dello spazio. Se hai bisogno di maggiori dettagli fammi sapere. La maggior parte è configurata nel file di layout, quindi è necessario modificare la transazione del frammento per aggiungerla all'ID del relativo contenitore di destinazione. – AgentKnopf