Agregue fragmento dinámicamente con LayoutParams

¿Es posible añadir dinámicamente Fragmentos con LayoutParams? Tengo 2 fragmentos que quiero poner en un RelativeLayout: uno debe bloquear a la izquierda. El otro debe ser bloqueado a la derecha.

Usted podría envolver cada uno en un diseño (como un LinearLayout ), a continuación, establecer su tamaño y posición. Esta respuesta se refiere a un problema similar y muestra cómo utilizar un FrameLayout con parámetros de diseño personalizado para contener un Fragment .

Tenga en cuenta que, al utilizar el objeto fragment en XML, puede utilizar los atributos android:layout_* para controlar su posición. Al igual que:

 <LinearLayout android:orientation="horizontal" ... > <fragment android:layout_height="wrap_content" android:layout_width="0px" android:layout_weight="1" ... /> <fragment android:layout_height="wrap_content" android:layout_width="0px" android:layout_weight="1" ... /> </LinearLayout> 

Sin embargo, no creo que sea posible aplicar parámetros de diseño de forma programática a Fragment s . No son ViewGroup s, después de todo.

He utilizado el siguiente enfoque para un ListFragment en un LinearLayout:

 class CustomListFragment extends ListFragment { @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { ViewGroup v = (ViewGroup) super.onCreateView(inflater, container, savedInstanceState); v.setLayoutParams(new LinearLayout.LayoutParams(0, LinearLayout.LayoutParams.MATCH_PARENT, 1)); return v; } } 

Ahora que leo sus comentarios sobre la otra respuesta, veo que es similar a lo que consideró.

Pero tenga en cuenta: el marco puede instanciar sus fragmentos. Por lo tanto, la clase debe ser pública y debe tener un constructor sin más argumentos.

Cualquier setter-métodos para personalizar sus fragmentos no funcionará por lo tanto, ya que no serán llamados para ninguna instancia de creación de framework.

Puede configurar LayoutParameters de su Fragmento en el método onCreateView . Antes de devolver la vista final como valor de retorno de este método, puede establecer parámetros de diseño. Como un fragmento de ejemplo a continuación, devuelve un TextView como su Vista que se pegó a su padre izquierdo configurando LayoutParams en él:

  public static class DummySectionFragment extends Fragment { public static final String ARG_SECTION_NUMBER = "placeholder_text"; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { TextView textView = new TextView(getActivity()); textView.setGravity(Gravity.CENTER); textView.setText(Integer.toString(getArguments().getInt( ARG_SECTION_NUMBER))); LayoutParams lp = new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT); lp.addRule(RelativeLayout.ALIGN_PARENT_LEFT); textView.setLayoutParams(lp); return textView; } } 

Para casos específicos, puede mover el ordenamiento de la capa a onStart () override

Fragmento se parece a esto

Clase pública FragmentOne extends Fragment {

 private Client client; public interface Client { RelativeLayout.LayoutParams fetchFragmentOneParams(FragmentOne fragment); } @Override public void onAttach(Context context) { super.onAttach(context); Activity activity = getActivity(); try { client = (Client) getActivity(); } catch (ClassCastException e) { throw new ClassCastException(activity.toString() + " must implement FragmentOne.Client"); } } @Override public void onStart() { super.onStart(); getView().setLayoutParams(client.fetchFragmentOneParams(this)); } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { RelativeLayout view = new RelativeLayout(getActivity()); // // code // return view; } 
  • ¿Cómo hacer que la clase AndroidApplication de LibGDX admita Fragmentos de Android?
  • Android Recyclerview lag mientras se desplaza hacia abajo
  • Problema de implementación de fragmentos Android
  • OnAttach (Activity) obsoleto: donde puedo comprobar si la actividad implementa la interfaz de devolución de llamada
  • Acceso a la referencia de fragmento dentro de una vista personalizada
  • Diseño de Android con barra de acciones y pestañas
  • Cómo utilizar los elementos de la barra de herramientas con Viewpager + Fragmentos
  • Descartar DialogFragment onClick
  • Funciones de llamada dentro de fragmentos en Android
  • Cardview dentro de la pestaña
  • Cómo actualizar fragmento anterior después de cerrar una actividad que se inició dentro de un adaptador?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.