我正在尝试将导航抽屉实施到受Material Design影响的应用程序(Appcompat v21)。
因此,我刚刚创建了基本的xml文件:
您可以放大一点,以便能够告诉我在那里做了什么:
正如您可能看到的,背景应该是粉红色的,因为我告诉主要内容视图是这样的。列表视图应为蓝色。现在您可以在预览窗口的右侧看到,整个屏幕变为蓝色而不仅仅是listView。
我的问题在哪里?我告诉listview只有240dp宽,不匹配父母。 如果我尝试运行应用程序,抽屉永远不会关闭"这意味着列表就在主要内容视图的顶部。
似乎程序不知道DrawerLayout是什么,只是在主要内容布局上绘制它的内容。
我无法弄清楚为什么这次不会工作。
有什么建议吗?
修改: 测试活动:
public class TestActivity extends Activity {
DrawerLayout drawerLayout;
ListView listView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_test);
drawerLayout = (DrawerLayout)findViewById(R.id.test_drawer_layout);
listView = (ListView)findViewById(R.id.test_left_drawer);
}
}
答案 0 :(得分:1)
抽屉内显示的视图(在本例中为ListView
)必须设置android:layout_gravity="start"
属性。
使用。控制抽屉定位和布局 子视图的
android:layout_gravity
属性对应于哪个 您希望抽屉出现的视图的一侧:左侧或右侧。 (或者在支持布局方向的平台版本上开始/结束。)要使用
DrawerLayout
,请将您的主要内容视图定位为第一个 宽度和身高为match_parent
的儿童。 添加抽屉作为孩子 主要内容视图后的视图并设置layout_gravity
适当的。抽屉通常使用match_parent
作为高度 固定宽度。