【发布时间】:2014-05-01 20:38:19
【问题描述】:
您好,我是 Android 开发新手,我必须创建一个带有不同项目的导航抽屉。
第一行应该包含一个
按钮
。接下来的三行应该包含
TexViews
,最后一行应该包含一个
编辑文本
我已经创建了布局,但我不知道如何在适配器内部调用它。
【问题讨论】:
-
为什么要为此使用 ListView?
-
因为我是 android 新手,而且我还不知道其他方式。
您好,我是 Android 开发新手,我必须创建一个带有不同项目的导航抽屉。
第一行应该包含一个
按钮
。接下来的三行应该包含
TexViews
,最后一行应该包含一个
编辑文本
我已经创建了布局,但我不知道如何在适配器内部调用它。
【问题讨论】:
导航抽屉不仅限于 ListView。也许这就是你想选择一个的原因。您可以使用任何视图/视图组来构建您的抽屉。尝试使用您选择的一些子视图的 LinearLayout。像这样的:
<LinearLayout
android:id="@+id/drawer_view"
android:layout_width="240dp"
android:layout_height="match_parent"
android:orientation="vertical"
android:layout_gravity="start">
<Button
.../>
<TextView
.../>
</LinearLayout>
这只是一个例子,表明你不必坚持使用 ListView 作为你的 Drawer。
【讨论】:
在getView 中,您需要检查getItem(position) 中的项目是什么类型,并在此基础上扩展正确的布局。
@Override
public View getView(int position, View convertView, ViewGroup parent)
{
NavDrawerItem item = getItem(position);
if (item.getType() == BUTTON_ITEM_TYPE)
{
convertView = inflater.inflate(R.layout.navdrawer_button, parent, false);
//get references to individual views, etc.
}
}
带有类似物品的界面
public interface NavDrawerItem
{
public static final int BUTTON_ITEM_TYPE = 1;
public static final int TEXTVIEW_ITEM_TYPE = 2;
public int getId();
public String getLabel();
public int getType();
}
【讨论】: