【问题标题】:Integrating android-misc-widget 'Panel' into Android project将 android-misc-widget 'Panel' 集成到 Android 项目中
【发布时间】:2011-07-20 18:05:20
【问题描述】:

我在尝试从android-misc-widgets 集成面板小部件时遇到ClassCastException

我已将 org.miscwidgets.widget 和 org.miscwidgets.interpolator 包复制到我的项目中,但无法在图形布局中查看面板显示。 xml 看起来像这样 -

<LinearLayout
   xmlns:android="http://schemas.android.com/apk/res/android"
   xmlns:panel="org.miscwidgets.widget"..

<FrameLayout
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:paddingLeft="37dip"
    android:paddingRight="37dip"
>
    <org.miscwidgets.widget.Panel
        android:layout_width="fill_parent" 
        android:layout_height="wrap_content" 
        android:id="@+id/topPanel" 
        android:paddingBottom="4dip"
        panel:handle="@+id/panelHandle"
        panel:content="@+id/panelContent"
        panel:position="top"
        panel:animationDuration="1000"
        panel:linearFlying="true"
        panel:openedHandle="@drawable/top_switcher_expanded_background"
        panel:closedHandle="@drawable/top_switcher_collapsed_background"

    >
        <Button
            android:id="@+id/panelHandle" 
            android:layout_width="fill_parent" 
            android:layout_height="33dip" 
        />
        <LinearLayout
            android:id="@+id/panelContent" 
            android:orientation="vertical"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
        >
            <CheckBox
                android:layout_width="fill_parent" 
                android:layout_height="60dip" 
                android:gravity="center"
                android:text="top check box"
                android:background="#688"
            />
            <TextView
                android:layout_width="fill_parent" 
                android:layout_height="wrap_content" 
                android:gravity="center"
                android:text="Bounce\nInterpolator"
                android:textSize="16dip"
                android:padding="4dip"
                android:textColor="#eee"
                android:textStyle="bold"
                android:background="#323299"
            />
        </LinearLayout>
    </org.miscwidgets.widget.Panel>
    </FrameLayout>...

堆栈跟踪是:

java.lang.ClassCastException: com.android.layoutlib.bridge.MockView cannot be cast to android.view.ViewGroup
at android.view.LayoutInflater_Delegate.rInflate(LayoutInflater_Delegate.java:77)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:702)
at android.view.LayoutInflater_Delegate.rInflate(LayoutInflater_Delegate.java:79)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:702)
at android.view.LayoutInflater_Delegate.rInflate(LayoutInflater_Delegate.java:79)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:702)
at android.view.LayoutInflater_Delegate.rInflate(LayoutInflater_Delegate.java:79)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:702)
at android.view.LayoutInflater_Delegate.rInflate(LayoutInflater_Delegate.java:79)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:702)
at android.view.LayoutInflater.inflate(LayoutInflater.java:479)
at android.view.LayoutInflater.inflate(LayoutInflater.java:367)
at com.android.layoutlib.bridge.impl.RenderSessionImpl.inflate(RenderSessionImpl.java:315)
at com.android.layoutlib.bridge.Bridge.createSession(Bridge.java:314)
at com.android.ide.common.rendering.LayoutLibrary.createSession(LayoutLibrary.java:283)
at com.android.ide.eclipse.adt.internal.editors.layout.gle2.GraphicalEditorPart.renderWithBridge(GraphicalEditorPart.java:1506)
at com.android.ide.eclipse.adt.internal.editors.layout.gle2.GraphicalEditorPart.renderWithBridge(GraphicalEditorPart.java:1312)
at com.android.ide.eclipse.adt.internal.editors.layout.gle2.GraphicalEditorPart.recomputeLayout(GraphicalEditorPart.java:1043)
at com.android.ide.eclipse.adt.internal.editors.layout.gle2.GraphicalEditorPart.activated(GraphicalEditorPart.java:870)
at com.android.ide.eclipse.adt.internal.editors.layout.LayoutEditor.pageChange(LayoutEditor.java:365)
at org.eclipse.ui.part.MultiPageEditorPart$2.widgetSelected(MultiPageEditorPart.java:290)
at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:234)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
at org.eclipse.swt.widgets.Display.sendEvent(Display.java:3783)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1375)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1398)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1383)
at org.eclipse.swt.widgets.Widget.notifyListeners(Widget.java:1195)
at org.eclipse.swt.custom.CTabFolder.setSelection(CTabFolder.java:2743)
at org.eclipse.swt.custom.CTabFolder.onMouse(CTabFolder.java:1429)
at org.eclipse.swt.custom.CTabFolder$1.handleEvent(CTabFolder.java:257)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
at org.eclipse.swt.widgets.Display.sendEvent(Display.java:3783)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1375)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1398)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1383)
at org.eclipse.swt.widgets.Widget.notifyListeners(Widget.java:1195)
at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3629)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3284)
at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2640)
at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2604)
at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2438)
at org.eclipse.ui.internal.Workbench$7.run(Workbench.java:671)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:664)
at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:115)
at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:369)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:620)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:575)
at org.eclipse.equinox.launcher.Main.run(Main.java:1408)

只是想在android中实现一个自上而下的滑动抽屉。

有人可以帮我弄清楚我做错了什么吗?

【问题讨论】:

  • 你能解释一下你是如何复制这些包的吗?

标签: android classcastexception sliding drawer


【解决方案1】:

开头LinearLayout标签中的那一行——

xmlns:panel="org.miscwidgets.widget"

应该是

xmlns:panel="http://schemas.android.com/apk/res/name.of.the.package.that.contains.java.file.that.uses.this.layout.file"

希望这对某人有所帮助。

【讨论】:

  • 我也遇到了类似的问题,请帮我解决它..简要说明一下你是如何解决这个问题的。
  • 请告诉你这是什么意思? ** 已将 org.miscwidgets.widget 和 org.miscwidgets.interpolator 包复制到我的项目中,但无法在图形布局中查看面板。** 你是如何复制这些包的?
猜你喜欢
  • 1970-01-01
  • 2014-02-03
  • 2017-11-06
  • 1970-01-01
  • 1970-01-01
  • 2015-02-18
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多