JavascriptProva

mercoledì 14 marzo 2018

Fragments

Una domanda a bruciapelo: ricordo ancora come si creano i Fragments?
Certamente no.
E' ora di mandalizzarne un po'...

Ho ricostruito nella memoria il modo di tracciare due fragments.
Distruggo il mandala e ricostruisco tutto da capo.
Si parte dal layout della MainActivity:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    tools:context="c.antonello.tavolofragment.MainActivity"


    android:layout_width="match_parent"
    android:layout_height="match_parent"

    android:orientation="horizontal"
    android:weightSum="4" >

    <fragment
        android:name="c.antonello.tavolofragment.Frammento"
        android:id="@+id/frammento"
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="1" />

    <fragment
        android:name="c.antonello.tavolofragment.Frammento2"
        android:id="@+id/frammento2"
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="3" />


</LinearLayout> 
mentre sul file Java della MainActivity non si fa niente in assoluto.

Quindi si creano i Fragments come due nuove classi che estendono Fragment:
public class Frammento extends Fragment {
    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, Bundle savedInstanceState) {
        return inflater.inflate(R.layout.frammento,container,false);
    }
}
public class Frammento2 extends Fragment {
    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, Bundle savedInstanceState) {
        return inflater.inflate(R.layout.frammento2,container,false);
    }
}
e si creano i relativi layout in xml:

frammento.xml
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#ffff88">

</LinearLayout> 


frammento2.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#555555">

</LinearLayout> 
che vengono inflatati dal metodo onCreateView contenuto nel codice Java del fragment.
Ad ognuno di essi ho attribuito un colore in modo da distinguerli nell'activity risultante.
Funziona.

Adesso sono pronto per la distruzione del Mandala con ricostruzione in diretta...

Nessun commento:

Posta un commento