J'ai un petit fragment de barre latérale que j'ajoute lors de la sélection d'un élément d'action. Il a une largeur fixe et mon désir est que la vue principale apparaisse en plein écran jusqu'à la sélection d'élément d'action quand elle sera légèrement compressée pour permettre à la barre latérale d'apparaître.Barre latérale du fragment Android
J'ai essayé pas mal de choses, y compris le relatif toleftOf/RightOf et diverses combinaisons de disposition/largeur. Je me retrouve toujours avec la barre latérale en plein écran sauf si j'utilise un LinearLayout avec des poids. Le problème avec le poids LinearLayout semi-fonctionnel est qu'il utilise un% de l'écran qui provoque des effets non fiables sur différentes tailles d'écran.
Quelqu'un a-t-il retiré quelque chose de similaire?
______ _
| | | |
| Main |<-|S|
|______| |_|
Actuellement xml semi-travail:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/LinearLayout1"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:baselineAligned="false" >
<FrameLayout
android:id="@+id/frameLayoutImage"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_weight="1" >
</FrameLayout>
<!-- This will initially have no content/collapsed -->
<FrameLayout
android:id="@+id/frameLayoutEdit"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_gravity="right|top"
android:layout_marginBottom="40dp"
android:layout_weight="4" >
</FrameLayout>
</LinearLayout>
Fragment xml (peut être une largeur fixe):
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/RelativeLayout1"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:orientation="vertical" >
<LinearLayout />
<Button />
<Button />
</RelativeLayout>
addition de fragments:
// This should just push the frame layout the necessary width to display the fragment
FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
transaction.add(R.id.frameLayoutEdit, xmpFrag);
Due à l'orientaiton de quelques éléments je ne voulais pas de superposition. Cela a fonctionné avec quelques modifications. principal 1. layout_width: 0DP 2. layout_weight: 1 Barre latérale: – Anthony
(Got lock-outés de finition du montage de commentaire) Cela a fonctionné avec quelques modifications. principal FrameLayout 1. layout_weight: 1 Note: layout_width: 0DP exige du poids, mais ne change rien la barre latérale FrameLayout: 1. layout_width: wrap_content 2. NO POIDS Encadré: 1. layout_width: 300dp Note: 300 est arbitraire pour votre contenu, wrap_content l'a fait ne jamais afficher – Anthony
Est-ce que votre sidebar est une vue personnalisée? Si c'est le cas, vous devez remplacer onMeasure pour permettre au wrap_content de fonctionner. –