studio programacion herramientas fundamentos con avanzado aplicaciones java android android-fragments toolbar

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();}