只有 ListView 滚动,而 ImageView 保持原样
听起来你的抽屉里有一个ImageView
在顶部,然后ListView
接下来。通过此配置,仅ListView
将滚动(因为它是唯一可滚动的视图)。
您需要添加ImageView
作为始终位于列表开头的标题。正如评论之一所建议的那样,listView.addHeaderView
.
导航底部似乎有一个 LinearLayout
我认为抽屉布局负责项目列表
显示。有人可以解释这是如何工作的吗?
他们使用LinearLayout
作为一个容器来容纳所有TextView
s:
private void createNavDrawerItems() {
mDrawerItemsListContainer = (ViewGroup) findViewById(R.id.navdrawer_items_list);
...
int i = 0;
for (int itemId : mNavDrawerItems) {
mNavDrawerItemViews[i] = makeNavDrawerItem(itemId, mDrawerItemsListContainer);
mDrawerItemsListContainer.addView(mNavDrawerItemViews[i]);
++i;
}
}
我相信他们使用的原因LinearLayout
并以编程方式膨胀所有项目是为了能够轻松使用分隔符项目:
private View makeNavDrawerItem(final int itemId, ViewGroup container) {
...
if (itemId == NAVDRAWER_ITEM_SEPARATOR) {
layoutToInflate = R.layout.navdrawer_separator;
} else if (itemId == NAVDRAWER_ITEM_SEPARATOR_SPECIAL) {
layoutToInflate = R.layout.navdrawer_separator;
} else {
layoutToInflate = R.layout.navdrawer_item;
}
...
return view;
}
In a ListView
您必须创建一个单独的项目类型并在那里使用分隔线的布局,这可能会变得更加麻烦。
乍一看然而,这段代码似乎只是在重新发明轮子,因为所有这一切都可以通过ListView
.