【发布时间】:2014-11-21 21:08:43
【问题描述】:
我正在尝试将导航抽屉实现到受 Material Design 影响的应用程序(Appcompat v21)中。
因此我刚刚创建了基本的 xml 文件:
你可能会放大一点,以便能够知道我在那里做了什么:
- 根视图是 android.support.v4.widget.DrawerLayout 本身
- 第一个孩子是主要内容,这里是一个简单的LinearLayout
- 第二个孩子 - 抽屉本身 - 是一个简单的列表视图,240dp 宽。
如您所见,背景应该是粉红色的,因为我告诉主要内容视图是粉红色的。列表视图应该是蓝色的。现在,正如您在预览窗口右侧看到的那样,整个屏幕变为蓝色,而不仅仅是 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);
}
}
【问题讨论】:
-
你用FrameLayout而不是LinearLayout的时候也一样吗?
-
刚刚测试过:是的,我在使用 FrameLayout 时遇到了同样的问题。也许值得一提的是,我在主题中禁用了“windowActionBar”,因为我使用的是工具栏。但我认为这应该不是问题
-
可以发一下活动代码吗?
-
编辑了我的帖子。活动代码没什么特别的,只是初始化两个对象
标签: android android-layout listview android-listview