导航抽屉中的ListView无法直观显示选择

时间:2013-10-02 15:56:18

标签: c# android android-listview xamarin navigation-drawer

我有一个显示ListView的活动屏幕。此ListView允许用户根据内容选择项目。我没有遇到任何问题。

但是,屏幕上还有一个导航抽屉。那是另一个ListView。我已手动设置其中一个要选择/检查的项目。但是,当导航抽屉打开时,ListView中没有任何视觉效果。如果我以编程方式查询它,我被告知检查了一个项目,它的位置是我所期望的。

我做错了吗?

屏幕的我的xml如下所示:

<?xml version="1.0" encoding="utf-8"?>
<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/NavigationDrawerLayout"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    <ListView
        android:id="@+id/folderList"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:choiceMode="singleChoice"
        android:listSelector="@android:color/darker_gray" />
    <LinearLayout
        android:id="@+id/drawerView"
        android:orientation="vertical"
        android:layout_width="240dp"
        android:layout_height="match_parent"
        android:layout_gravity="start">
        <ListView
            android:id="@+id/listNavFolders"
            android:layout_width="match_parent"
            android:layout_height="fill_parent"
            android:listSelector="@android:color/holo_red_light"
            android:choiceMode="singleChoice"
            android:divider="@android:color/transparent"
            android:dividerHeight="0dp"
            android:background="#111" />
    </LinearLayout>
</android.support.v4.widget.DrawerLayout>

我使用此代码设置选择。它是C#因为我使用的是Xamarin,但我认为这不应该有所作为。

this.drawerList.SetSelection(pos);
this.drawerList.SetItemChecked(pos, true);

CheckedItemCountCheckedItemPosition的调用均表示已设置值。我有理由确定我已经正确设置了ListView,因为屏幕上有另一个ListView可以正常工作。

有没有人建议我缺少什么?

1 个答案:

答案 0 :(得分:0)

您错过了drawerList中的项目必须实现SetItemChecked(pos,true)的ICheckable接口才能工作。

如果您使用Xamarin + MvvmCross,我建议您使用this aproach

对于android风格的DrawerLayout工作,只需将this answer改为csharp。