2017-08-20 2 views
0

Je veux ajouter un fragment à MainActivity mais quand j'y ajoute un fragment, il couvre toute la largeur et la hauteur de l'activité principale. Donc, comment définir la largeur et la hauteur du fragment pour envelopper le contenu par programme, sans utiliser XML.Comment ajouter de la largeur et de la hauteur de fragment par programme?

Voici le code de ce que je faire jusqu'à présent:

MainActivity.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:id="@+id/rekl" 
    android:layout_height="match_parent" 
    tools:context="com.example.ankit.fragment2.MainActivity"> 


</RelativeLayout> 

MainActivity.java

+2

définir la largeur et la hauteur sur R.id.rekl. –

+0

Montrer votre activité xml –

Répondre

0

vous pouvez faire comme ce

FragmentManager m = getFragmentManager(); 
     FragmentTransaction t = m.beginTransaction(); 
     ViewGroup.LayoutParams params = f.getView().getLayoutParams(); 
     params.height = 900; 
     f.getView().setLayoutParams(params); 
     t.add(R.id.frame, f, "Frag"); 
     t.commit(); 
+0

Je veux spécifier wrap_content, pas 900. Comment faire? – Ankit

+0

_puis changer la hauteur comme ceci_ params.height = ViewGroup.LayoutParams.WRAP_CONTENT; –

+0

Cela dépend où ce code est placé. onCreate dans l'activité semble être l'endroit le plus approprié, cependant à ce stade, la vue pour un fragment n'est pas encore créée, donc 'f.getView()' retournera 'null', donc tout cela ne marchera pas – mkilmanas