프로그래밍/안드로이드

안드로이드 - 액션바 숨기기 및 보이기

가카리 2015. 9. 20. 15:30
반응형

 

프로그램 실행 중에 조건에 따라 액션바의 보이기 상태를 토글할 수도 있다. 이때는 ActionBar클래스의 다음 메소드를 호출한다.

 

    void show()

    void hide()

    boolean isShowing()

 

액션바는 ActionBar 클래스로 표현하며 액티비티의 getActionBar() 메소드로 언제든지 구할 수 있다.

 

다음은 버튼을 눌렀을 때 액션바를 숨기고 다시 보이게하는 예제이다.

 

action_bar_test.xml

<menu xmlns:android="http://schemas.android.com/apk/res/android"

xmlns:tools="http://schemas.android.com/tools"

tools:context="com.example.ch21_actionbartest.ActionBarTest" >

 

    <item android:title="하나"

     android:icon="@android:drawable/ic_menu_add"

     android:showAsAction="always|withText"

     />

    <item android:title=""

     android:icon="@android:drawable/ic_menu_edit"

     android:showAsAction="ifRoom"

     />

    <item android:title=""

     android:showAsAction="ifRoom"

     />

    <item android:title=""

     android:showAsAction="ifRoom"

     />        

    <item android:title="다섯"

     android:showAsAction="ifRoom"

     />            

    <item android:title="여섯"

     />            

</menu>

 

 

activity_show_hide_action_bar.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

xmlns:tools="http://schemas.android.com/tools"

android:layout_width="match_parent"

android:layout_height="match_parent"

    android:orientation="vertical"

    >

    

<TextView

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:textSize="40sp"

android:text="액션바 토글"/>

<Button

android:id="@+id/btntoggle"

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:onClick="mOnClick"

android:text="Hide Action Bar"/>

<Button

android:layout_width="match_parent"

android:layout_height="0px"

android:layout_weight="1"

android:text=" 마을"

/>

<Button

android:layout_width="match_parent"

android:layout_height="0px"

android:layout_weight="2"

android:text="아랫 마을"/>

 

</LinearLayout>

 

 

ShowHideActionBar.java

 

package com.example.ch21_showhideactionbar;

 

import android.app.ActionBar;

import android.app.Activity;

import android.os.Bundle;

import android.view.Menu;

import android.view.MenuInflater;

import android.view.View;

import android.widget.Button;

 

public class ShowHideActionBar extends Activity {

 

    @Override

    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_show_hide_action_bar);

    

    }

 

    @Override

    public boolean onCreateOptionsMenu(Menu menu) {

        super.onCreateOptionsMenu(menu);

        MenuInflater inflater = getMenuInflater();

        inflater.inflate(R.menu.action_bar_test, menu);

        

        return true;

    }

 

    public void mOnClick(View v){

        switch(v.getId()){

        case R.id.btntoggle:

            ActionBar ab = getActionBar();

            if(ab.isShowing()){

                ab.hide();

                ((Button)v).setText("Show Action Bar");

            }else{

                ab.show();

                ((Button)v).setText("Hide Action Bar");

            }

            break;

        }

    }

}

 

 

실행 화면

액션바가 보이는 상태

 

액션바를 숨긴 상태