Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

214
Visualizações
¿Cómo cambiar el fragmento con la actividad de navegación inferior?

Creé un nuevo proyecto con la "Actividad de navegación inferior":

ingrese la descripción de la imagen aquí

Este es el código generado:

 package com.aaron.waller.mrpolitik; import android.os.Bundle; import android.support.annotation.NonNull; import android.support.design.widget.BottomNavigationView; import android.support.v7.app.AppCompatActivity; import android.view.MenuItem; import android.widget.TextView; public class MainActivity extends AppCompatActivity { private TextView mTextMessage; private BottomNavigationView.OnNavigationItemSelectedListener mOnNavigationItemSelectedListener = new BottomNavigationView.OnNavigationItemSelectedListener() { @Override public boolean onNavigationItemSelected(@NonNull MenuItem item) { switch (item.getItemId()) { case R.id.navigation_home: mTextMessage.setText(R.string.title_home); case R.id.navigation_dashboard: mTextMessage.setText(R.string.title_dashboard); case R.id.navigation_notifications: mTextMessage.setText(R.string.title_notifications); } return true; } }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mTextMessage = (TextView) findViewById(R.id.message); BottomNavigationView navigation = (BottomNavigationView) findViewById(R.id.navigation); navigation.setOnNavigationItemSelectedListener(mOnNavigationItemSelectedListener); } }

¿Cómo puedo cambiar a nuevos fragmentos con la barra inferior? Por ejemplo, tengo 3 fragmentos: Fragment1 Fragment2 y Fragment3 y quiero cambiarlos con los 3 botones de la barra inferior. También quiero poder cambiar los Fragmentos deslizando mi dedo hacia la izquierda y hacia la derecha, ¿cómo puedo hacer eso?

about 4 years ago · Santiago Trujillo
3 Respostas
Responde à pergunta

0

La forma en que lo haría es, primero agregaría tres métodos similares a este (cada uno para un solo fragmento. Reemplace el nombre del diseño y el objeto del fragmento al fragmento apropiado al que se está cambiando):

 public void switchToFragment1() { FragmentManager manager = getSupportFragmentManager(); manager.beginTransaction().replace(R.id.your_fragment_layout_name, new Fragment1()).commit(); }

Entonces, su declaración de cambio terminaría luciendo así:

 switch (item.getItemId()) { case R.id.navigation_home: mTextMessage.setText(R.string.title_home); switchToFragment1(); break; case R.id.navigation_dashboard: mTextMessage.setText(R.string.title_dashboard); switchToFragment2(); break; case R.id.navigation_notifications: mTextMessage.setText(R.string.title_notifications); switchToFragment3(); break; }

En cuanto a cambiar los fragmentos deslizando hacia los lados, creo que necesitarías un ViewPager .

about 4 years ago · Santiago Trujillo Relatório

0

Es bastante "sencillo".

  1. Crea tus Fragmentos. Digamos que queremos 3 fragmentos; FragmentA , FragmentB y FragmentC con FragmentA siendo el primer Fragmento que queremos en BottomNavigationView.
  2. En su Actividad, vaya al método onNavigationItemSelected y cambie el contenido a esto:

     private BottomNavigationView.OnNavigationItemSelectedListener mOnNavigationItemSelectedListener = new BottomNavigationView.OnNavigationItemSelectedListener(){ @Override public boolean onNavigationItemSelected(@NonNull MenuItem item) { switch (item.getItemId()) { case R.id.frag_a: currentFragment = new FragmentA(); ft = getSupportFragmentManager().beginTransaction(); ft.replace(R.id.content, currentFragment); ft.commit(); return true; case R.id.frag_b: currentFragment = new FragmentB(); ft = getSupportFragmentManager().beginTransaction(); ft.replace(R.id.content, currentFragment); ft.commit(); return true; case R.id.frag_c: currentFragment = new FragmentC(); ft = getSupportFragmentManager().beginTransaction(); ft.replace(R.id.content, currentFragment); ft.commit(); return true; } return false; } };
  3. En su método onCreate() , haga esto:

     @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_client_profile); ft = getSupportFragmentManager().beginTransaction(); currentFragment = new FragmentA(); ft.replace(R.id.content, currentFragment); ft.commit(); BottomNavigationView navigation = (BottomNavigationView) findViewById(R.id.navigation); navigation.setOnNavigationItemSelectedListener(mOnNavigationItemSelectedListener); }

Si no agrega FragmentA en onCreate() , la actividad estará en blanco cuando la inicie por primera vez.

Si se pregunta a qué se refiere R.id.content , es el Id del Framelayout en el diseño de su actividad. Inicialmente contiene un TextView , elimine el TextView para que se vea así:

 <FrameLayout android:id="@+id/content" android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="1"/>

Finalmente, ft y currentFragment se definen así:

 Fragment currentFragment = null; FragmentTransaction ft;

No estoy seguro de la elegancia, pero esto funciona.

about 4 years ago · Santiago Trujillo Relatório

0

La mejor manera es usar un ViewPager con un FragmentPagerAdapter . Ya que cobra los fragmentos en su interior. Use setOnNavigationItemSelectedListener con BottomNavigationView para escuchar los clics del usuario. Y use viewPager.setCurrentItem(..) para moverse entre páginas.

Crear un nuevo fragmento cada vez que el usuario hace clic en un elemento en la vista de navegación inferior no es una buena solución (especialmente cuando el usuario hace clic en el elemento de la pantalla en el que se encuentra actualmente, la solución anterior creará un nuevo fragmento incluso para este caso)

about 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda