如何在导航抽屉里面添加自定义ListView?每行不同的视图

时间:2014-05-01 20:38:19

标签: android listview drawer

您好我是Android开发的新手,我必须创建一个包含不同项目的导航抽屉。

第一行应包含

  

按钮

。接下来的三行应包含

  

TexViews

,最后一行应包含

  

的EditText

我已经离开了创建布局,但我还没想到如何在适配器内调用它。

2 个答案:

答案 0 :(得分:1)

导航抽屉不限于ListView。也许这就是你想选择一个的原因。您可以使用任何View / ViewGroup来构建抽屉。尝试使用您选择的一些子视图的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作为你的抽屉。

答案 1 :(得分:0)

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();
}