2013-03-10 3 views
4

Когда пользователь нажимает в любом месте экрана, я хочу, чтобы панель действий скрывалась, а при повторном нажатии она должна появляться снова.Как показать/скрыть панель действий при нажатии на

Я знаю, что есть что-то называемое actionbar.hide(); и показать, но можете ли вы, пожалуйста, помочь мне, как его реализовать? :)

ответ

14

Просто hide():

getActionBar().hide(); 

, когда вы хотите, чтобы скрыть его, и использовать show():

getActionBar().show() 

, когда вы хотите, чтобы показать его. Вот и все.

Помните, что если вы используете View.SYSTEM_UI_FLAG_FULLSCREEN, это не будет работать должным образом.

+0

Спасибо за ответ :) Но как может у скрыть его при нажатии в любом месте на экране? – ymerdrengene

+0

@ymerdrengene Override onTouch() –

+0

@RaghavSood Вызывается лаг при вызове show()/hide(). Можно ли этого избежать? – Ammar

1

Попробуйте это. Вы имеете здесь возможность вызова скрывать или отображать метод и в соответствии с вашим предложением

public class AbstractActivity Activity { 

    private boolean showActions = false; 


    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 

     ActionBar bar = getSupportActionBar(); 
     if (bar != null) { 
     bar.setHomeButtonEnabled(true); 
     bar.setDisplayShowHomeEnabled(true); 
     } 
    } 

    @Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     return super.onCreateOptionsMenu(menu); 
    } 

    @Override 
    public boolean onOptionsItemSelected(MenuItem item) { 
     int id = item.getItemId(); 
     switch (id) { 
     case android.R.id.home: 

     return true; 
     default: 
     // Nothing to do here 
     return super.onOptionsItemSelected(item); 
     } 
    } 

    private void handleActionBarTitle(boolean show) { 
     ActionBar actionBar = getSupportActionBar(); 
     if (actionBar == null) { 
     return; 
     } 
     actionBar.setDisplayShowTitleEnabled(show); 
    } 


    protected void disableActions() { 
     this.showActions = false; 
    } 

    protected void enableActions() { 
     this.showActions = true; 
    } 

    protected void hideActionBarTitle() { 
     handleActionBarTitle(false); 
    } 

    protected boolean showActions() { 
     return showActions; 
    } 

    protected void showActionTitle() { 
     handleActionBarTitle(true); 
    } 

Ваша деятельность просто нужно расширяет эту AbstractActivity

+0

Я думаю, что мой вопрос был неясным. Вместо того, чтобы показывать/скрывать панель действий, если вы могли бы пойти «fullscrean-mode», который я узнал, как это сделать. – ymerdrengene

Смежные вопросы