如何使用Android ViewSwitcher? [英] How to use Android ViewSwitcher?

查看:92
本文介绍了如何使用Android ViewSwitcher?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试使用ViewSwitcher在两个视图之间执行切换.一个是ImageView,另一个是MapView.我有一个按钮,用户单击该按钮即可执行此切换,但是我的代码导致错误.你们有什么想法吗?

I'm trying to use the ViewSwitcher to perform switches between two views. One is an ImageView and the other is a MapView. I have a button which the user clicks to perform this switch but my codes are causing an error. Do you guys have any idea what's about?

<?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">

    <relativelayout
        android:id="@+id/RelativeLayout01"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content">

        <imageview
            android:id="@+id/banner"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignparenttop="true"
            android:background="@drawable/banner_location"
            android:clickable="false">
        </imageview>

        <linearlayout
            android:id="@+id/LinearLayout01"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_below="@+id/banner"
            android:layout_centerhorizontal="true"
            android:layout_gravity="center_horizontal"
            android:orientation="horizontal"
            android:paddingbottom="5px">

            <imagebutton
                android:id="@+id/btnBusSvcs"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginright="5px"
                android:layout_margintop="5px"
                android:background="@drawable/btn_bus_svcs">
            </imagebutton>

            <imagebutton
                android:id="@+id/btnDrvRoute"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginleft="5px"
                android:layout_margintop="5px"
                android:background="@drawable/btn_drv_route">
            </imagebutton>
        </linearlayout>

        <viewswitcher
            android:id="@+id/switcher"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_above="@+id/imgViewBusSvcs"
            android:layout_below="@+id/LinearLayout01">

            <imageview
                android:id="@+id/imgViewBusSvcs"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_below="@+id/LinearLayout01"
                android:layout_centerinparent="true"
                android:layout_gravity="center_horizontal"
                android:background="@drawable/bus_svcs"
                android:clickable="false">
            </imageview>

            <com.google.android.maps.mapview
                android:id="@+id/mapview"
                android:layout_width="fill_parent"
                android:layout_height="300px"
                android:apikey="REMOVE MY API KEY"
                android:clickable="true">
            </com.google.android.maps.mapview>
        </viewswitcher>

        <imagebutton
            android:id="@+id/btnBackHome"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignparentbottom="true"
            android:layout_centerhorizontal="true"
            android:layout_gravity="center_horizontal"
            android:background="@drawable/btn_back_to_home">
        </imagebutton>
    </relativelayout>
</linearlayout>

错误就是这样

11-05 20:53:13.964: ERROR/AndroidRuntime(1417): Uncaught handler: thread main exiting due to uncaught exception
11-05 20:53:13.995: ERROR/AndroidRuntime(1417): java.lang.ClassCastException: android.widget.FrameLayout$LayoutParams
11-05 20:53:13.995: ERROR/AndroidRuntime(1417):     at android.widget.RelativeLayout.getRelatedView(RelativeLayout.java:694)
11-05 20:53:13.995: ERROR/AndroidRuntime(1417):     at android.widget.RelativeLayout.getRelatedViewParams(RelativeLayout.java:708)
11-05 20:53:13.995: ERROR/AndroidRuntime(1417):     at android.widget.RelativeLayout.applySizeRules(RelativeLayout.java:629)
11-05 20:53:13.995: ERROR/AndroidRuntime(1417):     at android.widget.RelativeLayout.onMeasure(RelativeLayout.java:279)
11-05 20:53:13.995: ERROR/AndroidRuntime(1417):     at android.view.View.measure(View.java:7115)
11-05 20:53:13.995: ERROR/AndroidRuntime(1417):     at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:2875)
11-05 20:53:13.995: ERROR/AndroidRuntime(1417):     at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:888)
11-05 20:53:13.995: ERROR/AndroidRuntime(1417):     at android.widget.LinearLayout.measureVertical(LinearLayout.java:350)
11-05 20:53:13.995: ERROR/AndroidRuntime(1417):     at android.widget.LinearLayout.onMeasure(LinearLayout.java:278)
11-05 20:53:13.995: ERROR/AndroidRuntime(1417):     at android.view.View.measure(View.java:7115)
11-05 20:53:13.995: ERROR/AndroidRuntime(1417):     at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:2875)
11-05 20:53:13.995: ERROR/AndroidRuntime(1417):     at android.widget.FrameLayout.onMeasure(FrameLayout.java:245)
11-05 20:53:13.995: ERROR/AndroidRuntime(1417):     at android.view.View.measure(View.java:7115)
11-05 20:53:13.995: ERROR/AndroidRuntime(1417):     at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:2875)
11-05 20:53:13.995: ERROR/AndroidRuntime(1417):     at android.widget.FrameLayout.onMeasure(FrameLayout.java:245)
11-05 20:53:13.995: ERROR/AndroidRuntime(1417):     at android.view.View.measure(View.java:7115)
11-05 20:53:13.995: ERROR/AndroidRuntime(1417):     at android.view.ViewRoot.performTraversals(ViewRoot.java:698)
11-05 20:53:13.995: ERROR/AndroidRuntime(1417):     at android.view.ViewRoot.handleMessage(ViewRoot.java:1482)
11-05 20:53:13.995: ERROR/AndroidRuntime(1417):     at android.os.Handler.dispatchMessage(Handler.java:99)
11-05 20:53:13.995: ERROR/AndroidRuntime(1417):     at android.os.Looper.loop(Looper.java:123)
11-05 20:53:13.995: ERROR/AndroidRuntime(1417):     at android.app.ActivityThread.main(ActivityThread.java:3948)
11-05 20:53:13.995: ERROR/AndroidRuntime(1417):     at java.lang.reflect.Method.invokeNative(Native Method)
11-05 20:53:13.995: ERROR/AndroidRuntime(1417):     at java.lang.reflect.Method.invoke(Method.java:521)
11-05 20:53:13.995: ERROR/AndroidRuntime(1417):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:782)
11-05 20:53:13.995: ERROR/AndroidRuntime(1417):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:540)
11-05 20:53:13.995: ERROR/AndroidRuntime(1417):     at dalvik.system.NativeStart.main(Native Method)

非常感谢您的帮助! :)

Really appreciate the help! :)

推荐答案

您是在运行时设置布局参数还是XML中的所有内容?

Are you setting Layout parameters at runtime or is everything in the XML?

您是否尝试过将ViewSwitcher的两个视图分别包装到其自己的LinearLayout中?

Have you tried wrapping the two views of the ViewSwitcher each into its own LinearLayout?

这篇关于如何使用Android ViewSwitcher?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆