web-dev-qa-db-fra.com

Les séparateurs LinearLayout n'apparaissent pas

Je travaille sur un projet Android et j'ai un LinearLayout qui contient 2 boutons horizontaux utilisant un style de bouton sans bordure. 

J'essaie de montrer des séparateurs entre chaque bouton, mais ils n'apparaissent pas, mais je ne vois pas pourquoi. Ci-dessous, la mise en page XML:

<LinearLayout Android:id="@+id/call_log_select_Host_button_group"
        Android:layout_width="fill_parent"
        Android:layout_height="wrap_content"
        Android:orientation="horizontal"
        Android:layout_alignParentBottom="true"
        Android:divider="#ffffff"
        Android:showDividers="middle"
        Android:dividerPadding="22dp">
        <Button Android:id="@+id/call_log_select_btnCancel"
            Android:layout_width="0dp"
            Android:layout_height="wrap_content"
            Android:layout_weight="1"
            Android:text="Cancel"
            style="?android:attr/borderlessButtonStyle" />
        <Button Android:id="@+id/call_log_select_btnBlock"
            Android:layout_width="0dp"
            Android:layout_height="wrap_content"
            Android:layout_weight="1"
            Android:text="Block"
            style="?android:attr/borderlessButtonStyle" />
    </LinearLayout>

Merci pour toute l'aide que vous pouvez apporter. 

24
Boardy

Créez un fichier mydivider.xml dans res/drawable et mettez la forme suivante

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:Android="http://schemas.Android.com/apk/res/Android">
    <size Android:width="1dip" />
    <solid Android:color="#ffffff" />
</shape>

ajouter la forme en tant que diviseur pour votre mise en page

<LinearLayout Android:id="@+id/call_log_select_Host_button_group"
        Android:layout_width="fill_parent"
        Android:layout_height="wrap_content"
        Android:orientation="horizontal"
        Android:layout_alignParentBottom="true"
        Android:divider="@drawable/mydivider"
        Android:showDividers="middle"
        Android:dividerPadding="22dp">
        <Button Android:id="@+id/call_log_select_btnCancel"
            Android:layout_width="0dp"
            Android:layout_height="wrap_content"
            Android:layout_weight="1"
            Android:text="Cancel"
            style="?android:attr/borderlessButtonStyle" />
        <Button Android:id="@+id/call_log_select_btnBlock"
            Android:layout_width="0dp"
            Android:layout_height="wrap_content"
            Android:layout_weight="1"
            Android:text="Block"
            style="?android:attr/borderlessButtonStyle" />
    </LinearLayout>

ou comme solution de contournement:

<LinearLayout Android:id="@+id/call_log_select_Host_button_group"
        Android:layout_width="fill_parent"
        Android:layout_height="wrap_content"
        Android:orientation="horizontal"
        Android:layout_alignParentBottom="true"
        Android:divider="@drawable/mydivider"
        Android:showDividers="middle"
        Android:dividerPadding="22dp">
        <Button Android:id="@+id/call_log_select_btnCancel"
            Android:layout_width="0dp"
            Android:layout_height="wrap_content"
            Android:layout_weight="1"
            Android:text="Cancel"
            style="?android:attr/borderlessButtonStyle" />

         <View    Android:layout_width="1dp"
            Android:layout_height="wrap_content"
            Android:background="#ffffff" />

        <Button Android:id="@+id/call_log_select_btnBlock"
            Android:layout_width="0dp"
            Android:layout_height="wrap_content"
            Android:layout_weight="1"
            Android:text="Block"
            style="?android:attr/borderlessButtonStyle" />
    </LinearLayout>
88
Blackbelt

Essayez de remplacer Android:divider="#ffffff" par Android:divider="@Android:color/white". Je soupçonne que divider doit être Drawable, et coder en dur la couleur peut ne pas la traiter comme un Drawable, mais son référencement pourrait l'être.

10
Jason Robinson

Vous devriez ajouter Android:layout_width="fill_parent" et Android:layout_height="fill_parent" dans votre LinearLayout. De cette façon, ça va montrer;)

0
Wannabe