2013-06-13 16 views
6

Dodałem Sherlock pasek działań do działalności za pomocą następującego polecenia w manifeście:Pokaż Ukryj Sherlock Action Bar

android:theme="@style/Theme.Sherlock.Light" 

chcę zapisać się na powierzchni ekranu i ukryć pasek działań domyślnie i pokazać je tylko gdy użytkownik dotknie ekranu. Widziałem to w aplikacji Aldiko, ale nie wiem jak to zrobić.

Każda pomoc jest mile widziane.

+0

odsetek może chcesz wyglądać w szablon aplikacji na pełnym ekranie, który można uzyskać, wybierając opcję Nowa aplikacja w środowisku Eclipse. Jest tam ładny kod do automatycznego ukrywania paska akcji. –

Odpowiedz

13

Aby ukryć skorzystać z poniższego kodu na metodę aktywność onCreate(),

getSupportActionBar().hide(); 

Aby pokazać skorzystać z poniższego kodu na razie z kranu,

getSupportActionBar().show(); 

Śledź ActionBarSherlock Usage więcej szczegółów.

+0

Dzięki. Działa bardzo dobrze. Właśnie dowiedziałem się, że Sherlock ActionBar ma te same metody API co Google ActionBar. Jeszcze raz dziękuję – Sandeep

+0

Pracował także dla mnie, ale ... jak ukryć tylko na przykład dostawcę udziałów? – KNU

1

najpierw dać identyfikator do węzła owijania układ aktywność (main_layout.xml):

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    xmlns:ads="http://schemas.android.com/apk/lib/com.google.ads" 
    android:id="@+id/containerMain" 

drugie wdrożenia tego w kodzie aktywności:

boolean isActionBarShow=true; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main_layout); 

    a=getSupportActionBar(); 
    RelativeLayout rl= (RelativeLayout)findViewById(R.id.containerMain); 
    rl.setOnTouchListener(new OnTouchListener() { 

     @Override 
     public boolean onTouch(View v, MotionEvent event) { 
      if (event.getAction()==MotionEvent.ACTION_DOWN) 
       if (isActionBarShow) 
       { 
        a.hide(); 
        isActionBarShow=false;      
       } 
       else 
       { 
        a.show(); 
        isActionBarShow=true; 

       } 
      return false; 
     } 
    });