J'essaye d'ajouter un diviseur à une disposition linéaire horizontale mais je ne vais nulle part. Le séparateur ne s'affiche tout simplement pas. Je suis un débutant total avec Android.
Voici mon XML de mise en page:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity" >
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:id="@+id/llTopBar"
android:orientation="horizontal"
android:divider="#00ff00"
android:dividerPadding="22dip"
android:showDividers="middle"
>
<Button
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:text="asdf" />
<Button
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:text="asdf"
/>
</LinearLayout>
</RelativeLayout>
android
android-layout
android-linearlayout
divider
Ahmed-Anas
la source
la source
Réponses:
utilisez ceci pour le diviseur horizontal
et ceci pour diviseur vertical
OU si vous pouvez utiliser le diviseur LinearLayout, pour le diviseur horizontal
et dans LinearLayout
Si vous souhaitez utiliser un diviseur vertical
android:height="1dp"
, utilisez plutôt une formeandroid:width="1dp"
Astuce: n'oubliez pas l'
android:showDividers
article.la source
layout_width
etlayout_height
: car horizontallayout_width
devrait"fill_parent"
etlayout_height
devrait être"1dp"
. Doit être échangé de la même manière pour le diviseur vertical.Essayez ceci, créez un diviseur dans le
res/drawable
dossier:vertical_divider_1.xml
Et utilisez l'
divider
attribut dans LinearLayout comme ceci:Remarque:
android:divider
est uniquement disponible dans Android 3.0 (niveau d'API 11) ou supérieur.la source
Il est facile d'ajouter un séparateur à la mise en page, nous n'avons pas besoin d'une vue séparée.
Au-dessus du code, créez un diviseur vertical pour
LinearLayout
la source
Mise à jour: pré-Honeycomb utilisant AppCompat
Si vous utilisez la bibliothèque AppCompat v7, vous souhaiterez peut-être utiliser la
LinearLayoutCompat
vue. En utilisant cette approche, vous pouvez utiliser des séparateurs dessinables sur Android 2.1, 2.2 et 2.3.Exemple de code:
drawable / divider.xml: (diviseur avec un peu de remplissage en haut et en bas)
Remarque très importante: la
LinearLayoutCompat
vue ne s'étend pasLinearLayout
et vous ne devez donc pas utiliser les propriétésandroid:showDividers
ouandroid:divider
mais les propriétés personnalisées:app:showDividers
etapp:divider
. Dans le code, vous devez également utiliser leLinearLayoutCompat.LayoutParams
pas leLinearLayout.LayoutParams
!la source
Je viens de rencontrer le même problème aujourd'hui. Comme l'indiquent les réponses précédentes, le problème provient de l'utilisation d'une couleur dans la balise de séparation, plutôt que d'un dessin. Cependant, au lieu d'écrire mon propre xml dessinable, je préfère utiliser autant que possible les attributs thématiques. Vous pouvez utiliser android: attr / dividerHorizontal et android: attr / dividerVertical pour obtenir un dessin prédéfini à la place:
Les attributs sont disponibles dans l'API 11 et au-dessus.
De plus, comme mentionné par bocekm dans sa réponse, la propriété dividerPadding n'ajoute PAS de remplissage supplémentaire de chaque côté d'un diviseur vertical, comme on pourrait le supposer. Au lieu de cela, il définit le remplissage supérieur et inférieur et peut donc tronquer le diviseur s'il est trop grand.
la source
Vous pouvez utiliser le séparateur intégré, cela fonctionnera pour les deux orientations.
la source
Frustrant, vous devez activer l'affichage des diviseurs de code dans votre activité. Par exemple:
la source
Votre diviseur peut ne pas s'afficher en raison d'un dividerPadding trop grand. Vous définissez 22dip, cela signifie que le diviseur est tronqué de 22dip à partir du haut et de 22dip à partir du bas. Si la hauteur de votre mise en page est inférieure ou égale à 44dip, aucun séparateur n'est visible.
la source
Si la réponse de Kapil Vats ne fonctionne pas, essayez quelque chose comme ceci:
drawable / divider_horizontal_green_22.xml
layout / your_layout.xml
J'ai rencontré un problème où l'attribut padding ne fonctionnait pas, j'ai donc dû définir la hauteur du diviseur directement dans le diviseur.
Remarque:
Si vous voulez l'utiliser dans un LinearLayout vertical, créez-en un nouveau, comme ceci: drawable / divider_vertical_green_22.xml
la source
Pour être dessiné, le diviseur de
LinearLayout
doit avoir une certaine hauteur tandis queColorDrawable
(ce qui est essentiellement#00ff00
aussi bien que toute autre couleur codée en dur) n'a pas. Un moyen simple (et correct) de résoudre ce problème consiste à envelopper votre couleur dans certainesDrawable
avec une hauteur prédéfinie, telle queshape
dessinablela source
Vous devez créer la vue any pour séparateur comme textview ou imageview, puis définir l'arrière-plan pour cela si vous avez une image, sinon utilisez la couleur comme arrière-plan.
J'espère que cela vous aide.
la source