액션바에 overflow 메뉴 생성하기

프로그래밍/Android (Java)|2015. 1. 27. 11:03
반응형

안드로이드 스마트폰은 대부분 '메뉴'버튼을 가지고 있습니다.

이 메뉴 버튼이 있을 경우 액션바에 overflow 메뉴가 나타나지 않고 메뉴 버튼을 누를때

하단에서부터 메뉴가 출력 되는데요, 이를 방지하고 무조건 overflow 메뉴가 나타나도록 할 수 있습니다.



res/menu/menu.xml


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

    <item

        android:id="@+id/action_refresh"

        android:showAsAction="ifRoom"

        android:title="새로고침"

        android:icon="@android:drawable/ic_menu_rotate" />

    <item

        android:id="@+id/action_loadyet"

        android:showAsAction="ifRoom"

        android:title="미수신 메세지 가져오기"

        android:icon="@android:drawable/ic_menu_recent_history" />

    <item

        android:id="@+id/action_clear"

        android:title="지우기" />

    <item

        android:id="@+id/action_setting"

        android:title="환경 설정" />

</menu> 



MainActivity.java


import android.view.Menu;

import android.view.MenuInflater;

import android.view.MenuItem;

import android.view.ViewConfiguration;

import java.lang.reflect.Field;


public class MainActivity extends Activity {

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);


// Force Show Overflow menu in Action bar

try {

ViewConfiguration config = ViewConfiguration.get(this);

Field menuKeyField = ViewConfiguration.class.getDeclaredField("sHasPermanentMenuKey");

if(menuKeyField != null) {

menuKeyField.setAccessible(true);

menuKeyField.setBoolean(config, false);

}

} catch (Exception ex) {

}


}

} 



반응형

댓글()