|
||
|
|
|
|||||||
| 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 |
![]() |
|
|
Herramientas |
|
#1
|
||||
|
||||
|
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. |
|
|
|
#2
|
||||
|
||||
|
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. |
| Gracias de parte de: | ||
|
#3
|
||||
|
||||
|
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. ![]() 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.
|
![]() |
Estás aquí
|
||||||
|
||||||