Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/214.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用Android ViewSwitcher?_Android_Android Mapview_Viewswitcher - Fatal编程技术网

如何使用Android ViewSwitcher?

如何使用Android ViewSwitcher?,android,android-mapview,viewswitcher,Android,Android Mapview,Viewswitcher,我正在尝试使用ViewSwitcher在两个视图之间执行切换。一个是ImageView,另一个是MapView。我有一个按钮,用户点击该按钮执行此切换,但我的代码导致错误。你们知道这是怎么回事吗 <?xml version="1.0" encoding="utf-8"?> <linearlayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="f

我正在尝试使用ViewSwitcher在两个视图之间执行切换。一个是ImageView,另一个是MapView。我有一个按钮,用户点击该按钮执行此切换,但我的代码导致错误。你们知道这是怎么回事吗

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

非常感谢您的帮助!:)

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


您是否尝试过将ViewSwitcher的两个视图分别包装到各自的线性布局中?

您需要一个线性布局来包装其他所有视图。在这个例子中,我看到了不止一个,但没有一个是主要的。

您的ImageView标记应该属于ViewSwitcher标记,就像com.google.android.maps.MapView一样。

将ViewSwitcher小部件添加到您的xml布局文件中。 向ViewSwitcher添加2个新布局

<ViewSwitcher
        android:id="@+id/viewSwitcher1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:inAnimation="@android:anim/slide_in_left" >

        <LinearLayout
        android:id="@+id/view1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" >
        <TextView
            android:id="@+id/text"
            android:text="This is simplezdscsdc text"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content">
            </TextView>

        </LinearLayout>


    <LinearLayout
        android:id="@+id/view2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" >
        <TextView
            android:id="@+id/text"
            android:text="This issdsdsds simplezdscsdc text"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content">
            </TextView>

        </LinearLayout>
    </ViewSwitcher>

android:inAnimation=“@android:anim/slide_in_left”允许从左侧滚动视图

您尝试过将ViewSwitcher的两个视图分别包装到各自的线性布局中吗?您好,谢谢!您的解决方案可行,但您知道为什么需要在ViewSwitcher中使用LinearLayouts将两个视图包装起来吗?我在API中找不到一个很好的ViewSwitcher示例,而且API中没有任何地方记录这是必需的。谢谢你的帮助!:我想这是一个计算视图大小的问题。但我只是猜测,可能不正确。这看起来根本不像答案。文档说一个ViewSwitcher只能有两个子视图,一次只能显示其中一个子视图。
<ViewSwitcher
        android:id="@+id/viewSwitcher1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:inAnimation="@android:anim/slide_in_left" >

        <LinearLayout
        android:id="@+id/view1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" >
        <TextView
            android:id="@+id/text"
            android:text="This is simplezdscsdc text"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content">
            </TextView>

        </LinearLayout>


    <LinearLayout
        android:id="@+id/view2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" >
        <TextView
            android:id="@+id/text"
            android:text="This issdsdsds simplezdscsdc text"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content">
            </TextView>

        </LinearLayout>
    </ViewSwitcher>
viewSwitcher =   (ViewSwitcher)findViewById(R.id.viewSwitcher1);
        myFirstView= findViewById(R.id.view1);
        mySecondView = findViewById(R.id.view2);
        button1 = (Button) findViewById(R.id.button1);
        button1.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View arg0) {
                // TODO Auto-generated method stub
                if (viewSwitcher.getCurrentView() != myFirstView){

                    viewSwitcher.showPrevious(); 
                } else if (viewSwitcher.getCurrentView() != mySecondView){

                    viewSwitcher.showNext();
                }
            }
        });