Domanda

Sto cercando di replicare il layout di Apple delle icone delle sue app. Ho problemi a usare <merge> e <include> Poiché non sembra visualizzare nell'app quando la eseguo.

Icon

Ecco la parte di unione:

<Button android:id="@+id/deleteContact"
        android:text="X"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"/>

<TextView android:id="@+id/personName"
          android:layout_width="fill_parent"
          android:layout_height="wrap_content"
          android:gravity="bottom|right"
          android:layout_gravity="bottom|right"
          android:textSize="20sp"
          android:text="asdfasdf"/>

<ImageView android:id="@+id/personImage"
           android:layout_width="fill_parent"
           android:layout_height="fill_parent"
           android:src="@drawable/icon"/>       

</merge>

L'inclusione è qui:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
          android:orientation="vertical"
          android:layout_width="fill_parent"
          android:layout_height="wrap_content">

<include layout="@layout/icon"/>

 </LinearLayout>

Sto mettendoli in una gridview qui:

<?xml version="1.0" encoding="utf-8"?>
<GridView xmlns:android="http://schemas.android.com/apk/res/android" 
              android:id="@+id/contactsGrid"
              android:layout_width="fill_parent"
              android:layout_weight="1"
              android:layout_height="fill_parent"
              android:numColumns="3"
              android:horizontalSpacing="3dip"
              android:verticalSpacing="3dip" />

Siamo riusciti a unire l'immagine e il testo finora usando Relativayouts, tuttavia quando aggiungiamo il pulsante Elimina, l'intera icona stessa non può più essere cliccata.

È stato utile?

Soluzione

Sembra che tu stia complicando le cose più di quanto potrebbero dover essere. Prova a usare un relativeLayout come vista genitore per il pulsante, il testo e laview Image. Ad esempio, dai un'occhiata al seguente:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<ImageView android:id="@+id/personImage"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"/>
<TextView android:id="@+id/personName"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignBottom="@id/personImage"
    android:layout_alignRight="@id/personImage"/>
<Button android:id="@+id/deleteContact"
    android:text="X"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignTop="@id/personImage"
    android:layout_alignLeft="@id/personImage"/>
</RelativeLayout>

Dovresti effettivamente essere in grado di usarlo solo in Gridview. Potresti voler sostituire il pulsante con un ImageButton che utilizza un'immagine reale.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top