Je construis une application Android avec la mise en page suivante.
C'est déjà connu que Ma question est de savoir comment le changer de manière dynamique. Le contenu de l'espace de vue est gonflé à partir de deux dispositions XML, voici le XML pour le point de vue de l'espace de vue p> Voici le code de mon PageauDapter P> Layout_height = "wrap_content" code> ne fonctionne pas pour le visualpager. P>
vp_statistics.xml et vp_campaigns.xml. Code> p>
MyPagerAdapter adapter = new MyPagerAdapter();
ViewPager viewPager = (ViewPager)findViewById(R.id.viewpager);
viewPager.setAdapter(adapter);
viewPager.setCurrentItem(0);
5 Réponses :
Utiliser 0dp code> au lieu de
wrap_content code> et pour changer de manière dynamique que
Votre code ne fonctionne pas, cela bloque la demande. Le bon code serait pager.setlayoutparams (nouveau linearlayout.layoutparams (layoutparams.ill_parent, layoutparams.wrap_content)); code> mais même avec le code modifié, il ne change pas la hauteur du visionneur.
Afin d'assigner différents immobiliers d'écran à chaque mise en page linéaire, essayez d'utiliser le paramètre layout_weight code>. Vous pouvez réaffecter ce cadre en code pour atteindre ce changement de pondération «dynamique». Vue d'ensemble ici avec de nombreux exemples de Google-capables de la façon dont Pour atteindre les mises en page de poids dans le code ... P>
Ce que j'essaie de faire dans mon application, c'est de ne pas affecter la mise en page supérieure et le point de vue inférieur un poids afin de leur donner la moitié de l'écran pour chacun, j'essaie d'attribuer différentes valeurs à la hauteur de l'espace de visionneur chacun TEMPS La page ViewPager change, car les présentations qui représentent les pages de visualisation sont différentes en hauteur. Et, par exemple, si la première page a la hauteur de 200 dP et que j'attribuais le mode de vue mode_height = "200dP", lors de la modification de la deuxième page (qui correspond à 400 dP), le bas 200DP est caché!
Hey Andrei, il semble que vous ayez besoin de mesurer la vue après avoir été dessinés et mettez à jour votre affichage de la largeur et de la hauteur de votre pager après la fin du tirage au sort. Je me suis engagé dans une tâche similaire récemment tout en intégrant les cartes Google dans Webviews. Découvrez cette réponse sur le sujet. Cela vous aidera.
poids = 2 code> attribut au parent linearlayout code> et définir orientation = vertical code>. li>.
- Définissez le top Enfant linearlayout's
Layoutout_weight = 1 code>. En outre, définissez layout_height = 0DIP CODE> LI>
- enveloppez l'affichage dans un autre
linearlayout code> avec layout_weight = 1 code> et layout_height = 0DIP code> li> li> li>
ol>
@bagusflyer Si vous partagez votre code, nous pourrons peut-être voir ce qui ne va pas avec ça.
Utilisez RelativelAnout B>:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<LinearLayout
android:id="@+id/layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >
</LinearLayout>
<android.support.v4.view.ViewPager
android:id="@+id/pager"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_below="@+id/layout" >
</android.support.v4.view.ViewPager>
</RelativeLayout>
J'ai répondu à une question similaire ici . P>
La solution OnMeasure () code> pour faire
wrap_content code> Travaillez simplement pour la hauteur. P>
Avez-vous corrigé le problème? J'ai un similaire.
avez-vous trouvé la solution pour cela
Veuillez vedette code.google.com/p/andrroid/issues/deetail ? id = 54604