2013-07-05 11 views

Antwort

34

Sie können im Grunde verwenden RelativeLayout oder LinearLayout es wird immer noch funktionieren, aber die Antwort auf Ihre Frage ist in FrameLayout ‚s Dokumentation:

FrameLayout ist so konzipiert, auf dem Bildschirm einen Bereich zu blockieren, eine anzuzeigen Einzelexemplar. Im Allgemeinen sollte FrameLayout eine einzelne untergeordnete Ansicht enthalten, da es schwierig sein kann, untergeordnete Ansichten in einer Weise zu organisieren, die auf verschiedene Bildschirmgrößen skalierbar ist, ohne dass sich die untergeordneten Elemente gegenseitig überlappen. Sie können jedoch mehrere untergeordnete Elemente zu einem FrameLayout hinzufügen und ihre Position innerhalb des FrameLayouts mithilfe von mit der Zuweisung der Schwerkraft zu jedem untergeordneten Element steuern, indem Sie das Attribut android: layout_gravity verwenden.

Sie können mehr über FrameLayout hier lesen: FrameLayout/Android Developers

14

Hauptzweck der Rahmenplan ist die Fläche blockieren erforderlich, um das größte Kind Blick passen. Wenn Sie ein Rahmenlayout als Fragmentcontainer verwenden, können Sie sicherstellen, dass immer der verfügbare Platz für das größte Fragmentlayout zur Verfügung steht.

In einigen Fällen müssen Sie möglicherweise mehr als 1 Fragment gleichzeitig auf dem Bildschirm haben. In diesem Fall sollten Sie relatives oder lineares Layout bevorzugen.

1

Alles basiert auf Benutzeranforderungen und Anpassung benötigt.

Es ist nicht notwendig, FrameLayout überhaupt zu verwenden.

Zum Beispiel in unten Code wird kein Layout genommen, und Fragment selbst enthält nur einzelne Bildansicht.

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"); 

    } 
} 
Verwandte Themen