En este ejercicio vamos a modificar el Ejercicio FragmentProgLayout y crear un nuevo Proyecto llamado FragmentsDynamicLayout . Este proyecto modificará dinámicamente la apariencia de los fragments.
El TitlesFragment deberá ocupar todo el ancho de pantalla si no se ha pulsado ningún título, es decir si no está presente el QuotesFragment
Cuando el QuotesFragment esté presente (el usuario ha seleccionado un autor) la distribución de la pantalla será la que teníamos en la aplicación anterior.
Deberemos pues añadir una FragmentTransaction para añadir el QuotesFragment en el método que responde a la selección del usuario.
Para gestionar estos cambios nos apoyaremos en un método llamado setLayout() que tendrás que codificar y que llamarlo donde proceda para que cuando el usuario pulse el Back button, se vuelva a la configuración de pantalla donde únicamente está visible el TitlesFragment.
private void setLayout() { if (!mQuoteFragment.isAdded()) { mTitleFrameLayout.setLayoutParams(new LinearLayout.LayoutParams(MATCH_PARENT,MATCH_PARENT)); mQuotesFrameLayout.setLayoutParams(new LinearLayout.LayoutParams(0,MATCH_PARENT)); } else { mTitleFrameLayout.setLayoutParams(new LinearLayout.LayoutParams(0,MATCH_PARENT, 1f)); mQuotesFrameLayout.setLayoutParams(new LinearLayout.LayoutParams(0,MATCH_PARENT, 2f)); } }
Deberemos obtener, donde corresponda, referencias a los Frame layouts mTitleFrameLayout y mQuotesFrameLayout que obtendremos de su definición en XML