如何在Android API Level 10上实现带有ListView的SlidingDrawer?

时间:2013-09-20 01:45:10

标签: android listview user-interface android-listview slidingdrawer

我一直在使用android很长一段时间,而且我已经使用Android支持库v4中的DrawerLayout构建了用户界面。

我的大学老师强迫我们使用API​​ Level 10来构建我们的应用程序,这就是我正在做的事情。

我正在尝试构建一个具有ListView Inside的SlidingDrawer,但我找不到正确的方法。以下代码导致两个错误

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/details"
android:layout_width="fill_parent"
android:layout_height="wrap_content">

    <SlidingDrawer
          android:id="@+id/slidingDrawerShowMore"
          android:layout_width="match_parent"
          android:layout_height="match_parent"
          android:topOffset="132dip"
          android:handle="@+id/handle"
          android:content="@+id/handle">

        <ImageView
         android:id="@id/handle"             
         android:layout_width="88dip"
         android:layout_height="44dip" />
    </SlidingDrawer>

错误讯息:

Exception raised during rendering: com.android.layoutlib.bridge.MockView cannot be cast to android.view.ViewGroup

Exception raised during rendering: The content attribute is must refer to an existing child.

(这是在我将抽屉的内容值更改为@ + id / content之后引发的)

这是我期待实现的结果。

Navigation Drawer Component

我怎么能解决它?

我的这个UI在API 17上完美运行,在DrawerLayout上的ListView上有一个自定义ListAdapter(来自android.support.v4.widget.DrawerLayout),但它不适用于较低的API级别。

1 个答案:

答案 0 :(得分:1)

您正在使用在Android中使用ActionBar组件的NavigationDrawer。这将仅适用于3.0及以上版本。因此,您需要删除应用中的ActionBar代码,并尝试使用自己的标题代码。

否则将操作栏的代码更改为ActionBarCompat,这是一个用于处理较低版本操作栏的库,实现非常简单,只需按照网址