2013-07-05 16 views

risposta

34

si può sostanzialmente utilizzare RelativeLayout o LinearLayout esso continuerà a funzionare, ma la risposta della tua domanda è nella documentazione FrameLayout s':

FrameLayout è stato progettato per bloccare un'area dello schermo per visualizzare un singolo oggetto. In genere, FrameLayout deve essere utilizzato per contenere una singola vista utente , perché può essere difficile organizzare le viste secondarie in un modo scalabile a diverse dimensioni dello schermo senza i bambini che si sovrappongono l'un l'altro. Tuttavia, puoi aggiungere più bambini a un FrameLayout e controllare la loro posizione all'interno di FrameLayout di assegnando la gravità a ciascun bambino, utilizzando l'attributo android: layout_gravity .

Potete leggere di più su FrameLayout qui: FrameLayout/Android Developers

14

scopo principale di aspetto di telaio è quello di bloccare l'area necessaria per adattare la più grande vista del bambino. Se si utilizza un layout del frame come contenitore dei frammenti, è possibile assicurarsi di avere sempre lo spazio disponibile per accogliere il layout del frammento più grande.

In alcuni casi potrebbe essere necessario disporre di più di 1 frammento sullo schermo contemporaneamente in questo caso è preferibile il layout relativo o lineare.

1

Tutto è basato sui requisiti dell'utente e sulla personalizzazione necessaria.

Non è necessario utilizzare FrameLayout.

Ad esempio nel seguente codice non è stato eseguito alcun layout e il frammento stesso contiene solo una visualizzazione di immagini singola.

public class MyFragment extends Fragment implements OnClickListener{ 

    String TAG="MyFragment"; 
    Context c; 
    MyFragment(Context con){ 
    c=con; 
    } 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     // TODO Auto-generated method stub 
     super.onCreate(savedInstanceState); 
    } 
    @Override 
    public void onActivityCreated(Bundle savedInstanceState) { 
     // TODO Auto-generated method stub 
     super.onActivityCreated(savedInstanceState); 
    } 
    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
      Bundle savedInstanceState) { 
     // TODO Auto-generated method stub 

     ImageView v=new ImageView(c); 
      //other imageview stuff 

     return v; 
    } 
    @Overrides 
    public void onClick(View v) { 
     // TODO Auto-generated method stub 
     Log.i(TAG, "onClcik"); 

    } 
} 
Problemi correlati