![]() |
|
Programación y Desarrollo para Android Subforo exclusivo para temas de programación de software para PDAs y desarrollo de aplicaciones, interfaces, etc bajo Android |
«
Tema Anterior
|
Siguiente tema
»
|
Herramientas |
#1
|
Duda reemplazar fragmentos
Saludos compañeros , tengo una duda que me esta dando guerra...
Resulta que tengo un viewpager el cual en una de sus paginas quiero reemplazar el fragmento inicial por otro , el caso es que no se porque no lo reemplaza solo dibuja encima y el inicial queda de fondo. este seria el fragment inicial: ![]() Y despues hago un replace desde el mismo fragment asi: Código:
String username = GlobalUtilities.getPrefs(getActivity()).getString("user",""); if(!username.isEmpty()){ NewPOST_Fragment frm = NewPOST_Fragment.newInstance(GlobalUtilities.URLNEWPOST+username); FragmentTransaction ft = getActivity().getSupportFragmentManager().beginTransaction(); ft.replace(R.id.notifications_fragment,frm); ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE); ft.addToBackStack(null); ft.commit(); } ![]() Como veis se superpone , no se cual es la causa , aqui pongo los xml de los frm para que los veais; Fragment inicial; Código:
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" xmlns:card_view="http://schemas.android.com/apk/res-auto" android:layout_width="fill_parent" android:layout_height="fill_parent" tools:context="com.amsspecialist.fragments.Notifications_Fragment" android:id="@+id/notifications_fragment"> <ScrollView android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/scrollView"> <LinearLayout android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent"> <ImageView android:layout_width="100dp" android:layout_height="100dp" android:id="@+id/imageUser" android:src="@drawable/ic_launcher" android:scaleType="centerCrop" android:layout_alignParentTop="true" android:layout_centerHorizontal="true" android:layout_gravity="center_horizontal" android:layout_marginTop="30dp" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:textAppearance="?android:attr/textAppearanceLarge" android:text="Large Text" android:id="@+id/textUsername" android:layout_below="@+id/icondrawner" android:layout_centerHorizontal="true" android:layout_gravity="center_horizontal" android:layout_marginTop="20dp" android:layout_marginBottom="10dp" /> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/action_sign_in" android:id="@+id/buttonLogin" android:layout_alignTop="@+id/textView2" android:layout_alignLeft="@+id/textView2" android:layout_alignStart="@+id/textView2" android:layout_gravity="center_horizontal" android:layout_marginTop="10dp" android:layout_marginBottom="20dp" android:visibility="visible" style="@style/Button" /> <android.support.v7.widget.CardView android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" android:id="@+id/card_new_post" card_view:cardElevation="2dp" card_view:cardCornerRadius="5dp" android:stateListAnimator="@drawable/translation_selector" android:clickable="true" android:layout_marginLeft="10dp" android:layout_marginRight="10dp"> <LinearLayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="horizontal"> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" android:padding="8dp" android:layout_weight="1"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:textAppearance="?android:attr/textAppearanceLarge" android:text="@string/news" android:id="@+id/texttitle_newpost" android:textStyle="bold|italic" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:textAppearance="?android:attr/textAppearanceMedium" android:text="@string/news_post_comment" android:id="@+id/textComment_newpost" android:textStyle="italic" /> </LinearLayout> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:textAppearance="?android:attr/textAppearanceMedium" android:text="0" android:textColor="@android:color/white" android:id="@+id/textBadge_newpost" android:layout_gravity="center_vertical" android:padding="10dp" android:background="@drawable/badge" android:layout_marginRight="10dp" /> </LinearLayout> </android.support.v7.widget.CardView> <android.support.v7.widget.CardView android:id="@+id/card_new_mps" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" card_view:cardElevation="2dp" card_view:cardCornerRadius="5dp" android:stateListAnimator="@drawable/translation_selector" android:clickable="true" android:layout_marginLeft="10dp" android:layout_marginRight="10dp"> <LinearLayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="horizontal"> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" android:padding="8dp" android:layout_weight="1"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:textAppearance="?android:attr/textAppearanceLarge" android:text="@string/news_mps" android:id="@+id/texttitle_newmps" android:textStyle="bold|italic" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:textAppearance="?android:attr/textAppearanceMedium" android:text="@string/news_mps_comment" android:id="@+id/textComment_newmps" android:textStyle="italic" /> </LinearLayout> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:textAppearance="?android:attr/textAppearanceMedium" android:text="0" android:textColor="@android:color/white" android:id="@+id/textBadge_newmps" android:layout_gravity="center_vertical" android:padding="10dp" android:background="@drawable/badge" android:layout_marginRight="10dp" /> </LinearLayout> </android.support.v7.widget.CardView> </LinearLayout> </ScrollView> </FrameLayout> Código:
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:id="@+id/fragment_new_post" tools:context="com.amsspecialist.fragments.NewPOST_Fragment"> <android.support.v7.widget.RecyclerView android:id="@+id/listnew_post" android:scrollbars="vertical" android:layout_width="match_parent" android:layout_height="match_parent"/> </FrameLayout> |
|
#2
|
Igual estoy loco pero si estás haciendo un replace desde el mismo fragment puede ser que simplemente lo esté añadiendo encima porque el otro fragment pertenece a la actividad contenedora y no lo elimina.
Has tratado de hacer el replace desde la actividad contenedora? Además así es como Google recomiendo hacerlo, que no exista comunicación directa entre fragments. Yo trataría de hacerlo de dos maneras: 1. A través de los callbacks a la actividad contenedora http://developer.android.com/guide/c...EventCallbacks 2. Con un método público de la actividad contendora dónde se realiza la transición y tu lo llames desde tu fragment si es indispensable: (Contenedora)getActivity.replace(fragment_nuevo); Ya nos dirás... |
#3
|
jejjej no estas loco si google lo dice es por algo las transiciones y reemplazos y demas se deben hacer desde la actividad contenedora , ese era el error .
|
#4
|
Viendo tus imagenes, ahora te planteo yo una cuestión...
![]() Estás empleando un toolbar o un actionBar? Si es un toolbar, en el xml has declarado un atributo de altura mínima? android:minHeight=.... porque a mi a veces me dan problemas de alineaciones del contenido de las toolbar y quisiera saber qué está empleando el resto del mundo. Graciasssss |
#5
|
||||
|
||||
Cita:
Un saludo. |
#6
|
Si yo uso una toolbar y como la tolbar es como un view cualquiera para que quede bien uso un linear layout donde pongo la toolbar arriba y los demas elementos siguientes.
y como minheigth uso ?attr/actionBarSize. |
#7
|
Interesante, yo hago lo mismo pero, como comenta el compañero joselehhh, se me descuadran los elementos dentro de la barra (los botones de búsqueda, el título y el acceso al navigation drawer) cuando realizo giros de pantalla.
Y eso que en la propia toolbar, al ser una view normal, le he metido parámetro gravity que, curiosamente, se está pasando por el forro de los .... Seguiremos con ello ![]() |
#8
|
|
Cita:
android:minHeight="?android:attr/actionBarSize" para el tamaño de la toolbar los problemas de descuadres son peores que si uso: android:minHeight="?attr/actionBarSize" <-- el correcto dónde las cosas aparecen mejor encuadradas. Si lo usas me cuentas a ver tú que tal?? |
#9
|
||||
|
||||
Hola oxot, efectivamente, yo uso el
[PHP]android:minHeight="?attr/actionBarSize"[/PHP] En el unico sitio donde se me descoloca al rotar es en una activity con la flecha back arrow. Al rotar, el titulo de la activity no queda a la misma altura. No me pasa lo mismo en el main actitivity con el menu drawer icon. Ahí aunque rote la pantalla, siguen alineados. En las dos activities uso como atributo de altura el que comentas. Un saludo. |
Respuesta |
![]() |
||||||
|
«
Tema Anterior
|
Siguiente tema
»
|
|
Hora actual: 20:36:12 (GMT +2)
HTCMania: líderes desde el 2007