2011-05-15 1 views
1

this 자습서를 사용하여 내 활동에 슬라이딩 서랍을 넣으려고합니다. 내 앱은 Android 2.1-update1 (API 7) 용입니다. 다음과 같은 xml 레이아웃을 만들 때 :안드로이드 SlidingDrawer

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" android:orientation="vertical"> 

<SlidingDrawer 
    android:id="@+id/slidingDrawer" 
    android:handle="@+id/drawerHandle" 
    android:content="@+id/contentLayout" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content"> 

<LinearLayout android:id="@+id/linearLayout1" android:layout_width="fill_parent" android:layout_height="wrap_content" android:gravity="center"> 
    <EditText android:text="" android:id="@+id/editText1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:minWidth="100px"/> 
    <Spinner android:id="@+id/spinner1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:prompt="@string/strFilter" /> 
    <Button android:text="Filtriraj" android:id="@+id/button1" android:layout_width="wrap_content" android:layout_height="wrap_content"/> 
</LinearLayout> 
</SlidingDrawer> 
<ScrollView android:layout_height="fill_parent" android:layout_width="fill_parent"> 
    <TableLayout android:layout_width="fill_parent" android:id="@+id/tableLayout1" android:layout_height="fill_parent" android:orientation="horizontal"> 
     <TableRow android:id="@+id/tableRow1" android:layout_height="wrap_content" android:baselineAligned="true" android:layout_gravity="center_horizontal" android:clipChildren="true" android:gravity="center_horizontal" android:layout_width="fill_parent" android:layout_margin="3dip"> 
      <TextView android:clickable="true" android:layout_height="wrap_content" android:text="@string/lblOd" android:id="@+id/textView1" android:layout_gravity="center_horizontal" android:layout_width="fill_parent" android:layout_marginRight="5dip"></TextView> 
      <TextView android:clickable="true" android:layout_height="wrap_content" android:id="@+id/textView2" android:text="@string/lblDatum" android:layout_gravity="center_horizontal" android:layout_width="fill_parent" android:drawableLeft="@drawable/arrowdown"></TextView> 
      <TextView android:clickable="true" android:layout_height="wrap_content" android:id="@+id/textView3" android:text="@string/lblTekst" android:layout_gravity="center_horizontal" android:layout_width="fill_parent" android:layout_marginLeft="3dip"></TextView> 
     </TableRow> 
    </TableLayout> 
</ScrollView> 
</LinearLayout> 

"디자인보기"- 그래픽 레이아웃으로 전환 할 때 예외가 생겼습니다. 오류는

ClassCastException: com.android.layoutlib.bridge.MockView cannot be cast to android.view.ViewGroup 
Exception details are logged in Window > Show View > Error Log 
The following classes could not be found: - SlidingDrawer 

내 코드에 문제가 있습니까?

답변

0

안드로이드 3.0으로 디자인보기를 전환하면 ADT의 버그가 발생합니다. 에뮬레이터에서 실행하면 코드가 작동합니다.

0

안타깝게도, 앱을 2.x 장치 대신 수백만 개로 실행하는 경우 3.0 용으로 설계/배치 할 수 있습니다.

0

SlidingDrawer 클래스 이름 (android.widget.SlidingDrawer)을 완전히 규정하면이 문제가 해결되었습니다. 이것은 2.1-update1 이상에서만 작동하는 것으로 보입니다.

또한 서랍 핸들을 서랍의 유효한 하위로 설정해야합니다.