¿Cómo puedo establecer LayoutParams a Fragment mediante programación?

Realidad : yo quiero agregar dos Fragments a un LinearLayout mediante programación y necesito establecer android:layout_weight para ellos. Soy novato en Fragment. No sé si es una buena manera o no agregar dos Fragments a un Layout

Lo siento. Mi inglés no es muy bueno.

  • stackoverflow.com/questions/5159982/…
  • gracias bigstones. Después de un tiempo lo intenté. Me decidí a establecer la fijación del fragmento de ancho de diseño en lugar de utilizar layout_weight. Pero, de cualquier forma, gracias de nuevo
InformationsquelleAutor kdtphdav | 2012-09-01

2 Comentarios

  1. 9
    LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(0, LayoutParams.MATCH_PARENT);
    params.weight = 3.0f;
    fragment.getView().setLayoutParams(params);
  2. 0

    Para realizar agregar/reemplazar/remover/conectar/desconectar las transacciones de 2 o más fragmentos dentro de un solo padre LinearLayout recomiendo seguir estos pasos básicos:

    El interior del Fragmento de clases, asegúrese de especificar LayoutParams para tu fragmentos de ajuste de la layout_height (o layout_width para la orientación horizontal) a «0», mientras que la configuración de la layout_weight a algún valor:

    @Override
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, Bundle savedInstanceState) {
        return inflater.inflate(R.layout.fragment_a, container, false);
    }
    
    @Override
    public void onActivityCreated(@Nullable Bundle savedInstanceState) {
        super.onActivityCreated(savedInstanceState);
        LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(0, ViewGroup.LayoutParams.MATCH_PARENT);
        params.weight = 1.0f;
        FragmentManager manager = getActivity().getFragmentManager();
        FragmentA fragmentA = (FragmentA) manager.findFragmentByTag("A");
        fragmentA.getView().setLayoutParams(params);
    }

    Aquí os muestro el código para un solo Fragmento (FragmentA) de la clase, pero asegúrese de que usted tiene bloques similares dentro de cada fragmento que vas a utilizar.

    Y ahora, dentro de la Actividad, donde tiene su LinearLayout, he aquí un ejemplo de la adición de tales fragmentos dentro de un LinearLayout:

    public void addA(View v) {
            FragmentA fragmentA = new FragmentA();
            FragmentTransaction transaction = fragmentManager.beginTransaction();
            transaction.add(R.id.linearLayout, fragmentA, "A");
            transaction.commit();
    }

    Donde linearLayout será el padre de los fragmentos dentro de nuestra actividad de diseño.

Dejar respuesta

Please enter your comment!
Please enter your name here