Puedo establecer LayoutParams a fragmento, mediante la programación de

¿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 Kommentare

  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.

Kommentieren Sie den Artikel

Bitte geben Sie Ihren Kommentar ein!
Bitte geben Sie hier Ihren Namen ein

Pruebas en línea