java - programacion - manual de android en pdf
Android barra de herramientas ocultar en un fragmento especĂfico (5)
Tengo un problema que no sé cómo resolver. ¿Cómo se oculta una barra de herramientas en un fragmento específico? Ya he estado buscando en Internet y lo que encontré fue la comunicación de la actividad y el fragmento lo resolvería. Pero no funciona para mí, aquí está mi código:
actividad principal:
public class MainActivity extends ActionBarActivity implements like_frag.OnHideToolbar{
....
public void onHidingToolbar(int position){
Toolbar toolbar = (Toolbar)findViewById(R.id.toolbar);
if(toolbar == null){
getSupportActionBar().hide();
}else{
getSupportActionBar().hide();
}
}
like_frag.java
public class like_frag extends Fragment {
OnHideToolbar mCallback;
Toolbar toolbar;
public interface OnHideToolbar {
public void onHidingToolbar(int position);
}
public void onAttach(Activity activity){
try{
mCallback = (OnHideToolbar) activity;
}catch(ClassCastException e){
throw new ClassCastException(activity.toString() + "error implementing");
}
}
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState){
View rootView = inflater.inflate(R.layout.swipefrag, container, false);
toolbar = (Toolbar)getActivity().findViewById(R.id.toolbar);
return rootView;
}
@Override
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
}
}
gracias por adelantado.
Tengo un cajón dentro de la barra de herramientas.
Cree una interfaz en el fragmento y utilícela para indicar a la actividad principal que oculte la barra de herramientas.
Añade estas líneas a tu fragmento:
private OnEventListener listener;
public interface OnEventListener {
void hideToolbar() ;
}
public void setOnEventListener(OnEventListener listener) {
this.listener = listener;
}
Después de crear su fragmento en la actividad principal agregue:
myFragment.setOnEventListener(new MyFragment.OnEventListener() {
@Override
public void hideToolbar() {
getSupportActionBar().hide();
}
});
Cuando necesites ocultar la barra de herramientas ejecuta:
listener.hideToolbar();
desde dentro de tu fragmento.
En la llamada al método onCreate
del fragmento:
((AppCompatActivity) getActivity()).getSupportActionBar().hide();
Reemplace AppCompateActivity
con la clase de actividad que utilizó.
Ponga este código en el fragmento en el que desea ocultar la barra de herramientas ...
@Override
public void onResume() {
super.onResume();
((AppCompatActivity)getActivity()).getSupportActionBar().hide();
}
@Override
public void onStop() {
super.onStop();
((AppCompatActivity)getActivity()).getSupportActionBar().show();
}
Simplemente agregue estos métodos al fragmento en el que desea dividir la barra de herramientas, y también en el fragmento onStop()
para que vuelva a estar visible.
@Override
public void onResume() {
super.onResume();
((AppCompatActivity)getActivity()).getSupportActionBar().hide();
}
@Override
public void onStop() {
super.onStop();
((AppCompatActivity)getActivity()).getSupportActionBar().show();
}
Ponga este código en el fragmento en el que desea ocultar la barra de herramientas ...
Agregue esto (((AppCompatActivity) getActivity ()). GetSupportActionBar (). Hide ();) en onCreateView o en onResume.
y hacer esto en onDestroy ()
@Override
public void onDestroy() {
super.onDestroy();
((AppCompatActivity)getActivity()).getSupportActionBar().show();}