jfeinstein10 - SlidingMenu를 사용하고 있습니다. 나는 일반 핸드셋을 사용하여 이미 구현했지만 타블렛에서 응용 프로그램을 시험해도 여전히 슬라이드 버튼을 보여줍니다. 나는 ResponsiveUI에서 튜토리얼을 따랐지만 메뉴는 여전히 숨어 있습니다. 태블릿을 사용할 때 영구히 표시되기를 바랍니다. 태블릿을 사용할 때 menu_frame.xml이 자동으로 호출되면 안됩니까? menu_frame이 null 인 경우 질문하는 부분에 주석을 달아 보았습니다. 그러나 타블렛에서 강제로 실행하도록 설정했지만 오류로 인해 menu_frame이 발견되지 않습니다. 나는 슬라이딩 메뉴가 실제로 어떻게 작동하는지 혼란 스럽다. 도와주세요! 어떤 아이디어로 태블릿에서 그렇게 행동하는 이유는 무엇입니까? 여기 내 소스 코드는 다음과 같습니다Android 슬라이딩 메뉴가 태블릿에서 작동하지 않습니다. 메뉴가 정상적인 핸드셋에서와 같이 작동합니다 (버튼 클릭 슬라이드).
BaseActivity.java
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getSupportActionBar().hide();
setContentView(R.layout.activity_base);
// check if the content frame contains the menu frame
if (findViewById(R.id.menu_frame) == null) {
setBehindContentView(R.layout.menu_frame);
getSlidingMenu().setMode(SlidingMenu.LEFT);
getSlidingMenu().setSlidingEnabled(true);
getSlidingMenu().setTouchModeAbove(SlidingMenu.TOUCHMODE_MARGIN);
getSlidingMenu().setBehindWidthRes(R.dimen.sidebar_default_width);
} else {
// add a dummy view
Log.v("BaseActivity", "menu not null");
View v = new View(this);
setBehindContentView(v);
getSlidingMenu().setSlidingEnabled(false);
getSlidingMenu().setTouchModeAbove(SlidingMenu.TOUCHMODE_NONE);
getSlidingMenu().setBehindWidthRes(R.dimen.sidebar_no_width);
}
// set the Above View Fragment
if (savedInstanceState != null) {
mContent = getSupportFragmentManager().getFragment(savedInstanceState, "mContent");
mMenuPosition = savedInstanceState.getInt("menu_position");
}
if (mContent == null) {
mContent = new BirdsFragment();
mMenuPosition = 0;
}
getSupportFragmentManager()
.beginTransaction()
.replace(R.id.content_frame, mContent)
.commit();
// set the Behind View Fragment
getSupportFragmentManager()
.beginTransaction()
.replace(R.id.menu_frame, new MenuListFragment())
.commit();
// customize the SlidingMenu
SlidingMenu sm = getSlidingMenu();
sm.setShadowWidthRes(R.dimen.shadow_width);
sm.setShadowDrawable(R.drawable.shadow);
sm.setBehindOffsetRes(R.dimen.slidingmenu_offset);
sm.setFadeDegree(0.35f);
}
레이아웃/activity_base.xml
<RelativeLayout 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"
tools:context=".BaseActivity">
<include layout="@layout/actionbar" />
<FrameLayout
android:id="@+id/content_frame"
android:layout_below="@id/actionbar"
android:layout_width="match_parent"
android:layout_height="match_parent" />
레이아웃/menu_frame.xml
은3210<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/menu_frame"
android:layout_width="match_parent"
android:layout_height="match_parent" />