¿Cómo cambiar la actividad en el botón de navegación inferior?

Quiero utilizar la barra de navegación inferior en mi aplicación Android, pero el problema es que toda la pantalla es la actividad, es posible cargar la actividad sin ocultar la barra de navegación inferior.

Ejemplo: activity_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" android:layout_width="match_parent" android:layout_height="match_parent"> <android.support.v4.widget.NestedScrollView android:id="@+id/myScrollingContent" android:layout_width="match_parent" android:layout_height="match_parent"> <!-- Your loooooong scrolling content here. --> </android.support.v4.widget.NestedScrollView> <com.roughike.bottombar.BottomBar android:id="@+id/bottomBar" android:layout_width="match_parent" android:layout_height="60dp" android:layout_gravity="bottom" app:bb_tabXmlResource="@xml/bottom_bar" app:bb_behavior="shy"/> </android.support.design.widget.CoordinatorLayout> 

Esta es mi actividad base,

MainActivity.java

 public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); BottomBar bottomBar; bottomBar = (BottomBar) findViewById(R.id.bottomBar); bottomBar.setOnTabSelectListener(new OnTabSelectListener() { @Override public void onTabSelected(@IdRes int tabId) { if (tabId == R.id.matching) { Log.i("matching","matching inside "+tabId); Intent in=new Intent(getBaseContext(),Main2Activity.class); startActivity(in); }else if (tabId == R.id.watchlist) { Log.i("matching","watchlist inside "+tabId); Intent in=new Intent(getBaseContext(),Main3Activity.class); startActivity(in); } } }); } } 

Main2Activity

 public class Main2Activity extends MainActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //setContentView(R.layout.activity_main2); NestedScrollView dynamicContent = (NestedScrollView) findViewById(R.id.myScrollingContent); View wizard = getLayoutInflater().inflate(R.layout.activity_main2, null); dynamicContent.addView(wizard); 

Main3Activity

 public class Main3Activity extends MainActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //setContentView(R.layout.activity_main3); NestedScrollView dynamicContent = (NestedScrollView) findViewById(R.id.myScrollingContent); View wizard = getLayoutInflater().inflate(R.layout.activity_main3, null); dynamicContent.addView(wizard); } } 

manifiesto

 <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.bottom.bottomnavigation"> <application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:supportsRtl="true" android:theme="@style/AppTheme"> <activity android:name=".Main2Activity"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name=".MainActivity" /> <activity android:name=".Main3Activity"></activity> </application> </manifest> 

He resuelto este problema de la siguiente manera:

1.Cree una BaseActivity con la barra de navegación inferior.

  package com.example.apple.bottomnavbarwithactivity; import android.content.Intent; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.util.Log; import android.widget.RadioButton; import android.widget.RadioGroup; public class BaseActivity extends AppCompatActivity { RadioGroup radioGroup1; RadioButton deals; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_base); radioGroup1=(RadioGroup)findViewById(R.id.radioGroup1); deals = (RadioButton)findViewById(R.id.deals); radioGroup1.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() { @Override public void onCheckedChanged(RadioGroup group, int checkedId) { Intent in; Log.i("matching", "matching inside1 bro" + checkedId); switch (checkedId) { case R.id.matching: Log.i("matching", "matching inside1 matching" + checkedId); in=new Intent(getBaseContext(),MatchingActivity.class); startActivity(in); overridePendingTransition(0, 0); break; case R.id.watchList: Log.i("matching", "matching inside1 watchlistAdapter" + checkedId); in = new Intent(getBaseContext(), WatchlistActivity.class); startActivity(in); overridePendingTransition(0, 0); break; case R.id.rates: Log.i("matching", "matching inside1 rate" + checkedId); in = new Intent(getBaseContext(),RatesActivity.class); startActivity(in); overridePendingTransition(0, 0); break; case R.id.listing: Log.i("matching", "matching inside1 listing" + checkedId); in = new Intent(getBaseContext(), ListingActivity.class); startActivity(in); overridePendingTransition(0, 0); break; case R.id.deals: Log.i("matching", "matching inside1 deals" + checkedId); in = new Intent(getBaseContext(), DealsActivity.class); startActivity(in); overridePendingTransition(0, 0); break; default: break; } } }); } } 

BaseActivity diseño denominado base_activity.xml

  <LinearLayout android:layout_width="match_parent" android:layout_height="56dp" android:elevation="10dp" android:background="@color/white" android:id="@+id/bottonNavBar" android:paddingTop="5dp" android:orientation="horizontal" android:layout_alignParentBottom="true" android:foregroundGravity="bottom"> <RadioGroup android:id="@+id/radioGroup1" android:gravity="center" android:layout_height="match_parent" android:layout_width="match_parent" android:orientation="horizontal" android:baselineAligned="false"> <RadioButton android:layout_width="match_parent" android:gravity="center" android:layout_height="match_parent" android:text="Matching" android:layout_weight="1" android:button="@null" android:padding="2dp" android:checked="false" android:textSize="12sp" android:drawableTop="@drawable/selector_matching" android:textColor="@drawable/selector_nav_text" android:id="@+id/matching"/> <RadioButton android:layout_width="match_parent" android:gravity="center" android:layout_height="match_parent" android:button="@null" android:layout_weight="1" android:padding="2dp" android:checked="false" android:textSize="12sp" android:drawableTop="@drawable/selector_watchlist" android:textColor="@drawable/selector_nav_text" android:id="@+id/watchList" android:text="Watchlist"/> <RadioButton android:layout_width="match_parent" android:gravity="center" android:layout_height="match_parent" android:id="@+id/rates" android:button="@null" android:paddingTop="5dp" android:paddingBottom="2dp" android:paddingLeft="2dp" android:paddingRight="2dp" android:layout_weight="1" android:checked="false" android:textSize="12sp" android:drawableTop="@drawable/selector_rates" android:textColor="@drawable/selector_nav_text" android:text="Rates"/> <RadioButton android:layout_width="match_parent" android:gravity="center" android:layout_height="match_parent" android:button="@null" android:padding="2dp" android:checked="false" android:layout_weight="1" android:textSize="12sp" android:drawableTop="@drawable/selector_deals" android:textColor="@drawable/selector_nav_text" android:id="@+id/deals" android:text="Deals"/> <RadioButton android:layout_width="match_parent" android:gravity="center" android:layout_height="match_parent" android:button="@null" android:padding="2dp" android:checked="false" android:layout_weight="1" android:textSize="12sp" android:drawableTop="@drawable/selector_listing" android:textColor="@drawable/selector_nav_text" android:id="@+id/listing" android:text="Listing"/> </RadioGroup> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:id="@+id/dynamicContent" android:orientation="vertical" android:layout_marginBottom="56dp" android:background="@color/white" android:layout_gravity="bottom"> </LinearLayout> 

2.extend BaseActivity en toda la actividad que desea abrir en el clic de navegación inferior y también es necesario inflar los diseños de la actividad Por ejemplo, he creado cinco ejemplos de actividad.

I] MatchingActivity.

  package com.example.apple.bottomnavbarwithactivity; import android.graphics.Color; import android.os.Bundle; import android.support.design.widget.FloatingActionButton; import android.support.design.widget.Snackbar; import android.support.v7.app.AppCompatActivity; import android.support.v7.widget.Toolbar; import android.view.View; import android.widget.LinearLayout; import android.widget.RadioButton; import android.widget.RadioGroup; //extends our custom BaseActivity public class MatchingActivity extends BaseActivity { LinearLayout dynamicContent,bottonNavBar; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //setContentView(R.layout.activity_matching); //dynamically include the current activity layout into baseActivity layout.now all the view of baseactivity is accessible in current activity. dynamicContent = (LinearLayout) findViewById(R.id.dynamicContent); bottonNavBar= (LinearLayout) findViewById(R.id.bottonNavBar); View wizard = getLayoutInflater().inflate(R.layout.activity_matching, null); dynamicContent.addView(wizard); //get the reference of RadioGroup. RadioGroup rg=(RadioGroup)findViewById(R.id.radioGroup1); RadioButton rb=(RadioButton)findViewById(R.id.matching); // Change the corresponding icon and text color on nav button click. rb.setCompoundDrawablesWithIntrinsicBounds( 0,R.drawable.ic_matching_clicked, 0,0); rb.setTextColor(Color.parseColor("#3F51B5")); } } 

Ii] Lista de SeguimientoActividad

  package com.example.apple.bottomnavbarwithactivity; import android.graphics.Color; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.LinearLayout; import android.widget.RadioButton; import android.widget.RadioGroup; public class WatchlistActivity extends AppCompatActivity { LinearLayout dynamicContent,bottonNavBar; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //setContentView(R.layout.activity_watchlist1); dynamicContent = (LinearLayout) findViewById(R.id.dynamicContent); bottonNavBar= (LinearLayout) findViewById(R.id.bottonNavBar); View wizard = getLayoutInflater().inflate(R.layout.activity_watchlist1, null); dynamicContent.addView(wizard); RadioGroup rg=(RadioGroup)findViewById(R.id.radioGroup1); RadioButton rb=(RadioButton)findViewById(R.id.watchList); rb.setCompoundDrawablesWithIntrinsicBounds( 0,R.drawable.favourite_heart_selected, 0,0); rb.setTextColor(Color.parseColor("#3F51B5")); } } 

Iii] TarifasActividad

  package com.example.apple.bottomnavbarwithactivity; import android.graphics.Color; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.LinearLayout; import android.widget.RadioButton; import android.widget.RadioGroup; public class RatesActivity extends BaseActivity { LinearLayout dynamicContent,bottonNavBar; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // setContentView(R.layout.activity_rates); dynamicContent = (LinearLayout) findViewById(R.id.dynamicContent); bottonNavBar= (LinearLayout) findViewById(R.id.bottonNavBar); View wizard = getLayoutInflater().inflate(R.layout.activity_rates, null); dynamicContent.addView(wizard); RadioGroup rg=(RadioGroup)findViewById(R.id.radioGroup1); RadioButton rb=(RadioButton)findViewById(R.id.rates); rb.setCompoundDrawablesWithIntrinsicBounds( 0,R.drawable.ic_rate_clicked, 0,0); rb.setTextColor(Color.parseColor("#3F51B5")); } } 

Iv] ListadoActividad

  package com.example.apple.bottomnavbarwithactivity; import android.graphics.Color; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.LinearLayout; import android.widget.RadioButton; import android.widget.RadioGroup; public class ListingActivity extends BaseActivity { LinearLayout dynamicContent,bottonNavBar; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //setContentView(R.layout.activity_listing); dynamicContent = (LinearLayout) findViewById(R.id.dynamicContent); bottonNavBar= (LinearLayout) findViewById(R.id.bottonNavBar); View wizard = getLayoutInflater().inflate(R.layout.activity_listing, null); dynamicContent.addView(wizard); RadioGroup rg=(RadioGroup)findViewById(R.id.radioGroup1); RadioButton rb=(RadioButton)findViewById(R.id.listing); rb.setCompoundDrawablesWithIntrinsicBounds( 0,R.drawable.ic_listing_clicked, 0,0); rb.setTextColor(Color.parseColor("#3F51B5")); } } 

V] OfertasActividad

  package com.example.apple.bottomnavbarwithactivity; import android.graphics.Color; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.LinearLayout; import android.widget.RadioButton; import android.widget.RadioGroup; public class DealsActivity extends BaseActivity { LinearLayout dynamicContent,bottonNavBar; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //setContentView(R.layout.activity_deals); dynamicContent = (LinearLayout) findViewById(R.id.dynamicContent); bottonNavBar= (LinearLayout) findViewById(R.id.bottonNavBar); View wizard = getLayoutInflater().inflate(R.layout.activity_deals, null); dynamicContent.addView(wizard); RadioGroup rg=(RadioGroup)findViewById(R.id.radioGroup1); RadioButton rb=(RadioButton)findViewById(R.id.deals); rb.setCompoundDrawablesWithIntrinsicBounds( 0,R.drawable.ic_deals_clicked, 0,0); rb.setTextColor(Color.parseColor("#3F51B5")); } } 

Nota: cerciórese de que usted maneja la prensa posterior correctamente. No he escrito ningún código para la prensa posterior .

Introduzca aquí la descripción de la imagen

Introduzca aquí la descripción de la imagen

Introduzca aquí la descripción de la imagen

Introduzca aquí la descripción de la imagen

Introduzca aquí la descripción de la imagen

Con Activity , tienes que declarar e init que BottomBar cada vez que carga esa activity .

Con su problema, mi respuesta es NO .

Por cierto, puede utilizar Fragmento que le ayuda a resolver esto muy bien.

Es hora de aprender algo nuevo, hermano.

EDITAR

Usted trae Fragment dentro de solo 1 Actividad. Y dejar BottomBar dentro de la Activity mientras que todos los demás vista y conjunto de datos dentro de Fragment .

¡Solo inténtalo!

  • Reducir márgenes en los diseños de Android
  • Android.view.inflateexception binario archivo xml línea # 1 error inflar clase android.widget.relativeLayout
  • Super.onCreateView en Fragmentos
  • ¿Cómo puedo configurar un diseño de paisaje solo para tablets?
  • Color de TextView muestra como blanco en un dispositivo real con ConstraintLayout
  • ViewPager en Android está tomando la pantalla completa?
  • (No se puede encontrar la referencia de id) Ningún recurso coincide con el nombre dado en
  • ¿Cómo preparar el diseño, las carpetas dibujables para 7 ", 10" tabletas Android para el paisaje y el retrato?
  • Recycler View con GridLayoutManager horizontal El desplazamiento no funciona
  • Cómo influenciar linebreak en Android Textview
  • "Demasiadas referencias de atributos" warning
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.