프로그램 실행 중에 조건에 따라 액션바의 보이기 상태를 토글할 수도 있다. 이때는 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;
}
}
}
실행 화면
액션바가 보이는 상태
액션바를 숨긴 상태
'프로그래밍 > 안드로이드' 카테고리의 다른 글
안드로이드 - 액션바의 활용 두번째 액션 프로바이더 (0) | 2015.09.28 |
---|---|
안드로이드 - 프래그먼트를 이용한 간단한 사전 만들기 (0) | 2015.09.21 |
안드로이드 - 액션바의 활용 첫번째 SeachView (0) | 2015.09.20 |
안드로이드 - 앱 로고 아이콘 (0) | 2015.09.20 |
안드로이드 - 액션바 기초 (0) | 2015.09.20 |
안드로이드 - 이클립스에서 안드로이드 SDK MANAGER가 안보일때 (0) | 2015.09.19 |
안드로이드 - ListFragment 만들기 (0) | 2015.09.13 |
안드로이드 - 백(Back) 버튼을 눌렀을 때 이전 프래그먼트로 복귀하기 (0) | 2015.09.13 |