Su Android, vorrei creare un pulsante che contiene altre viste. Ad esempio, qualcosa di simile:Come creare un pulsante che contiene più viste?
+---------------------------+
| Hello world! +-------+ |
| | image | |
| Some more info +-------+ |
+---------------------------+
Ma mi piacerebbe che fosse più flessibile di questo esempio specifico. Idealmente, il pulsante sarebbe semplicemente in grado di contenere un ViewGroup, in modo da poter implementare il suo layout in un file XML separato. Tuttavia, poiché Button estende View, ma non ViewGroup, ciò non sembra possibile.
C'è un modo per ottenere questo utilizzando i componenti standard di Android, o devo ricorrere a scrivere una classe pulsante personalizzato?
Come richiesto, alcuni esempi XML che fa il trucco:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
android:focusable="true"
android:clickable="true"
android:background="@android:drawable/btn_default">
<TextView
android:id="@+id/name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="@android:color/primary_text_light"/>
<TextView
android:id="@+id/additional_line_1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="@android:color/primary_text_light"/>
<TextView
android:id="@+id/additional_line_2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="@android:color/primary_text_light"/>
</LinearLayout>
ho dovuto impostare il colore sui TextViews esplicitamente, altrimenti sarebbe quasi illeggibile (sono bianco per impostazione predefinita) . Ho recuperato l'identificativo dall'SDK: .../platforms/android-7/data/res/values/public.xml
. Stranamente, primary_text_light
dà testo nero, mentre primary_text_dark
risultati in bianco ...
25.3k rappresentante su SO e tu stai facendo questa domanda? Ti darò un suggerimento ... scrivi la tua classe ... o mi è mancato il punto? – Squonk
Davvero? La reputazione implica che un individuo non possa mai rimanere bloccato in un posto e chiedere qualche consiglio? –
Direi anche, creare la propria classe View (Group) personalizzata. –