如何在单击时显示/隐藏操作栏

时间:2013-03-10 20:29:35

标签: android android-actionbar show-hide

当用户点击屏幕上的任意位置时,我希望操作栏隐藏,再次按下时,它应该重新出现。

我知道有一种叫做actionbar.hide()的东西;并展示,但是,请你帮我解决一下如何实施它? :)

2 个答案:

答案 0 :(得分:14)

只需hide()

getActionBar().hide();

如果要隐藏它,请使用show()

getActionBar().show() 

当你想要展示它时。就是这样。

请记住,如果您使用的是View.SYSTEM_UI_FLAG_FULLSCREEN,则无法正常使用。

答案 1 :(得分: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