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

Respuesta
 
Herramientas
  #1  
Viejo 05/03/16, 10:06:34
Array

[xs_avatar]
gonza28 gonza28 no está en línea
Desarrollador
 
Fecha de registro: feb 2012
Localización: INTERESA?
Mensajes: 4,191
Modelo de smartphone: Samsung Galaxy Note 4
Tu operador: Personal
Setear un layout del main_activity a un fragmento

Si. Puede ser confuso. Pasa que estoy usando tabLayout. estoy usando fragment adapter para las pestañas debido a que se me dificulta trabajar en la actividad principal.
Estoy trabajando con esto practicamente http://blog.grafixartist.com/paralla...pport-library
pero no puedo poner el TabLayout transparente porque en mi casi, como estoy trabajando con un fragmentAdapter estoy insertando el TabLayout del sistema en el AppBarLayout ya que no puedo usar un TabLayout físico en xml por que el AppBarLayout está en el main_activity.xml y para usar un TabLayout personalizado, es decir usar un TabLayout físico, debo meterlo en el AppBarLayout. pero en ese casi se me cierra la app porque no tengo acceso a ese TabLayout desde un Fragment.class. se entiende?

Mi diseño va todo bien, salvo que el TabLayout es de color y me arruina el diseño. yo pretendo dejarlo como se ve en el tutorial.

Si seteo un BackgroundColor de la siquiente manera:
tabs.setBackgroundColor(Color.parseColor("#0000000 0")); no funciona. a palos si me cambia, se pone blanco el fondo y no transparente ya que el TabLayout está insertado de manera rara. mas abajo el ejemplo de como lo tengo.

[PHP]public class ViewPagerTwo extends Fragment {
private AppBarLayout appBar;
private TabLayout tabs;
private ViewPager viewPager;

public ViewPagerTwo() {
}

@override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragmento_viewpager, container, false);


if (savedInstanceState == null) {
insertarTabs(container);

viewPager = (ViewPager) view.findViewById(R.id.pager);
poblarViewPager(viewPager);
tabs.setupWithViewPager(viewPager);
}

return view;
}

private void insertarTabs(ViewGroup container) {
View padre = (View) container.getParent();
appBar = (AppBarLayout) padre.findViewById(R.id.appbar);
tabs = new TabLayout(getActivity());
tabs.setSelectedTabIndicatorColor(Color.parseColor ("#FFFFFF"));
tabs.setTabTextColors(Color.parseColor("#FFFFFF"), Color.parseColor("#ffc003"));
appBar.addView(tabs);
}

private void poblarViewPager(ViewPager viewPager) {
AdaptadorSecciones adapter = new AdaptadorSecciones(getFragmentManager());
adapter.addFragment(new UnoFragment(), getString(R.string.tab1));
adapter.addFragment(new DosFragment(), getString(R.string.tab2));
adapter.addFragment(new TresFragment(), getString(R.string.tab3));
adapter.addFragment(new CuatroFragment(), getString(R.string.tab4));
viewPager.setAdapter(adapter);
}
............[/PHP]

Me gustaria meter manualmente y físicamente un TabLayout en el AppBarLayout.
Pero no puedo porque este está en el main.
Alguien podria ayudarme? Me gusta mucho estos efectos pero no llevo mucho con ello y me cuestan algunas cosas.

Muchas gracias desde ya. Un saludo!

Última edición por gonza28 Día 05/03/16 a las 11:29:19.
Responder Con Cita


  #2  
Viejo 05/03/16, 10:47:49
Array

[xs_avatar]
kriogeN kriogeN no está en línea
Colaborador/a
· Votos compra/venta: (1)
 
Fecha de registro: oct 2010
Localización: Murcia
Mensajes: 4,637
Modelo de smartphone: Samsung Galaxy S7 Edge SM-G935F
Tu operador: Vodafone
He leído varias veces y no termino de enterarme, pero a ver si esto te vale.

Para acceder a una View del Activity desde el Fragment puedes hacerlo con:

getActivity().findViewById(R.id.....)

La llamada funcionará siempre y cuando lo hagas en el onActivityCreated() o algún evento posterior.
Responder Con Cita
Gracias de parte de:
  #3  
Viejo 05/03/16, 11:28:45
Array

[xs_avatar]
gonza28 gonza28 no está en línea
Desarrollador
 
Fecha de registro: feb 2012
Localización: INTERESA?
Mensajes: 4,191
Modelo de smartphone: Samsung Galaxy Note 4
Tu operador: Personal
 Cita: Originalmente Escrito por kriogeN Ver Mensaje
He leído varias veces y no termino de enterarme, pero a ver si esto te vale.

Para acceder a una View del Activity desde el Fragment puedes hacerlo con:

getActivity().findViewById(R.id.....)

La llamada funcionará siempre y cuando lo hagas en el onActivityCreated() o algún evento posterior.
Era de lo más facil. pero claro, yo no lo sabia ya que hasta ahora solamente declaraba los viewPager en la actividad. Tampoco se si esto me traerá problemas, supongo y creeria que no. M diste la clave. Era facil dije, pero tambien digo que no lo sabia hacer. Como estoy guiandome en tutoriales para esto, no presté mucha atencion aquí:

private void insertarTabs(ViewGroup container) {
View padre = (View) container.getParent();
appBar = (AppBarLayout) padre.findViewById(R.id.appbar);
tabs = new TabLayout(getActivity());
tabs.setSelectedTabIndicatorColor(Color.parseColor ("#FFFFFF"));
tabs.setTabTextColors(Color.parseColor("#FFFFFF"), Color.parseColor("#ffc003"));
appBar.addView(tabs);
}

Con tu ayuda lo puse así y problema resuelto. Tanto codigo por aqui y por allá que no me di cuenta.
Muchas gracias por la ayuda. marco como resuelto.

tabs = new TabLayout(getActivity());

x

tabs = (TabLayout) padre.findViewById(R.id.tabs);

main.xml o content main.xml

<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:gonza="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
android:id="@+id/coordinatorLayout">

<android.support.design.widget.AppBarLayout
android:id="@+id/appbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:fitsSystemWindows="true"
android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">

<android.support.design.widget.CollapsingToolbarLa yout
android:id="@+id/htab_collapse_toolbar"
android:layout_width="match_parent"
android:layout_height="240dp"
android:fitsSystemWindows="true"
app:contentScrim="?attr/colorPrimary"
app:layout_scrollFlags="scroll|exitUntilCollapsed" >

<ImageView
android:id="@+id/header"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
android:src="@mipmap/cofee_one"
android:scaleType="centerCrop"
app:layout_collapseMode="parallax" />

<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="104dp"
android:minHeight="?attr/actionBarSize"
app:layout_collapseMode="pin"
android:gravity="top"
app:titleMarginTop="13dp"
app:popupTheme="@style/ThemeOverlay.AppCompat.Light" />

<android.support.design.widget.TabLayout
android:id="@+id/tabs"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:layout_gravity="bottom"
app:tabIndicatorColor="@color/zalmon" />
</android.support.design.widget.CollapsingToolbarLay out>

</android.support.design.widget.AppBarLayout>

<RelativeLayout
android:id="@+id/contenedor_principal"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_behavior="@string/appbar_scrolling_view_behavior">



</RelativeLayout>

<android.support.design.widget.FloatingActionButto n
android:id="@+id/fab"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="bottom|end"
android:layout_margin="@dimen/fab_margin"
android:src="@android:drawable/ic_dialog_email" />

</android.support.design.widget.CoordinatorLayout>

Muchas gracias.
Responder Con Cita
Respuesta

Estás aquí
Regresar   Portal | Indice > Todo sobre Android > Programación y Desarrollo para Android



Hora actual: 21:53:50 (GMT +1)



User Alert System provided by Advanced User Tagging (Lite) - vBulletin Mods & Addons Copyright © 2025 DragonByte Technologies Ltd.

Contactar por correo / Contact by mail / 邮件联系 /