我在ResponsiveUIActivity.java
示例中找到了以下代码:if (findViewById(R.id.menu_frame) == null) {
,我不知道// check if the content frame contains the menu frame
if (findViewById(R.id.menu_frame) == null) {
setBehindContentView(R.layout.menu_frame);
getSlidingMenu().setSlidingEnabled(true);
getSlidingMenu().setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);
// show home as up so we can toggle
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
} else {
// add a dummy view
View v = new View(this);
setBehindContentView(v);
getSlidingMenu().setSlidingEnabled(false);
getSlidingMenu().setTouchModeAbove(SlidingMenu.TOUCHMODE_NONE);
}
是什么意思:
R.id.menu_frame
layout
指向3个布局
这个位于<?xml version="1.0" encoding="utf-8"?>
<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" />
文件夹:
layout-xlarge
这个位于<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android = "http://schemas.android.com/apk/res/android"
android:layout_width = "match_parent"
android:layout_height = "match_parent"
android:orientation = "horizontal"
android:baselineAligned = "true">
<FrameLayout
android:id = "@+id/menu_frame"
android:layout_width = "0dp"
android:layout_height = "match_parent"
android:layout_weight = "1" />
<FrameLayout
android:id = "@+id/content_frame"
android:layout_width = "0dp"
android:layout_height = "match_parent"
android:layout_weight = "2" />
</LinearLayout>
文件夹中:
layout-large-land
,这个位于<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal" >
<FrameLayout
android:id="@+id/menu_frame"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1" />
<FrameLayout
android:id="@+id/content_frame"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="3" />
</LinearLayout>
文件夹:
menu_frame
以上3个布局中{{1}}为空,但滑动菜单如何与主题一起使用?
答案 0 :(得分:2)
布局目录layout
,layout-xlarge
和layout-large-land
表示支持屏幕尺寸和屏幕方向的不同布局。您可以阅读更多相关信息here。
条件if(findViewById(R.id.menu_frame) == null)
正在检查view
是否存在。
也就是说,如果条件保持true
,则表示滑动菜单当前已关闭,因此您将menu view
“置于”current view
后面。但是,当条件为false
时,表示用户已点击左上角的菜单按钮,从而执行else
部分,后面放置current view
“ “然后调出menu view
。