嵌套的viewFlipper布局

时间:2011-06-13 17:24:57

标签: android xml layout android-layout viewflipper

我正在尝试使用viewflipper创建自定义标签式布局。因此,我需要在屏幕顶部并排放置两个按钮。我有这个。但是,我试图将viewFlipper内容放在这两个按钮下面。这是我当前的XML(不显示textviews)

        <LinearLayout
 android:id="@+id/linearLayout01" 
 android:layout_width="fill_parent" 
 android:layout_height="fill_parent" 
 android:orientation="vertical"
 android:background="#FAFAFA"
 xmlns:android="http://schemas.android.com/apk/res/android">

    <LinearLayout 
        android:id="@+id/linearLayout02" 
        android:orientation="vertical" 
        android:layout_width="fill_parent" 
        android:layout_height="wrap_content">
            <Button android:id="@+id/button1" android:text="button 1" android:layout_height="wrap_content" android:layout_width="0dip" layout_weight = ".5"/>
            <Button android:id="@+id/button2" android:text="button 2" android:layout_height="wrap_content" android:layout_width="0dip" layout_weight = ".5"/>
    </LinearLayout>
<RelativeLayout
    android:id="@+id/relativeLayout01"
    android:layout_width="fill_parent"
    android:layout_height="0dp"
    android:layout_weight="1"
    android:layout_below="@id/linearLayout02">
    <ViewFlipper 
        android:layout_height="fill_parent" 
        android:layout_width="fill_parent" 
        android:id="@+id/viewFlipper01">

        <include 
            android:id="@+id/one" 
            layout="@layout/view_one" />
        <include 
            android:id="@+id/two" 
            layout="@layout/view_two" />

    </ViewFlipper>
    </RelativeLayout>
</LinearLayout>

2 个答案:

答案 0 :(得分:3)

包含按钮的LinearLayout有一个layout_height="fill_parent"。您需要将其设置为wrap_content,并在父orientation="vertical"中指定LinearLayout。您还需要为要填充的视图指定layout_weight

由于linearLayout01 LinearLayoutlayout_height设置为fill_parent,因此android会让它重置屏幕。下面的内容根本不可见,因为它不在屏幕上。

<LinearLayout
 android:id="@+id/linearLayout01" 
 android:layout_width="fill_parent" 
 android:layout_height="fill_parent" 
 android:orientation="vertical" 
 xmlns:android="http://schemas.android.com/apk/res/android">

<LinearLayout
 android:id="@+id/linearLayout02" 
 android:layout_width="fill_parent" 
 android:layout_height="wrap_content">
    <Button android:id="@+id/button01" android:layout_height="wrap_content" android:text="Button 1" android:layout_width="0dip" android:layout_weight="1"></Button>
    <Button android:id="@+id/button02" android:layout_height="wrap_content" android:text="Button 2" android:layout_width="0dip" android:layout_weight="1"></Button>
</LinearLayout>

<RelativeLayout
 android:id="@+id/relativeLayout01" 
 android:layout_width="fill_parent" 
 android:layout_height="0dp"
 android:layout_weight="1">
    <ViewFlipper
        android:id="@+id/flipper01"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        >
    <TextView
        android:id="@+id/textview01"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Text"
        />  
        <TextView
        android:id="@+id/textview02"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Text2"
        />  

    </ViewFlipper>
    </RelativeLayout>
</LinearLayout>

答案 1 :(得分:0)

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 android:id="@+id/linearLayout01" 
 android:layout_width="fill_parent" 
 android:layout_height="fill_parent" 
 android:orientation="vertical" >   

            <Button android:id="@+id/button01" 
    android:layout_height="wrap_content" 
    android:text="Button 1" 
    android:layout_width="0dip" 
    android:layout_weight="1" />

    <Button android:id="@+id/button02" 
    android:layout_height="wrap_content" 
    android:text="Button 2" 
    android:layout_width="0dip" 
    android:layout_weight="1" />

    <ViewFlipper
    android:id="@+id/flipper01"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >


    <RelativeLayout
     android:id="@+id/relativeLayout01" 
     android:layout_width="fill_parent" 
     android:layout_height="0dp"
     android:layout_weight="1">

        <!-- Screen 1: Wherever view you want to display on the first screen -->
    </RelativeLayout>
    <RelativeLayout
     android:id="@+id/relativeLayout02" 
     android:layout_width="fill_parent" 
     android:layout_height="0dp"
     android:layout_weight="1">

        <!-- Screen 2: Wherever view you want to display on the second screen -->
    </RelativeLayout>

</ViewFlipper></LinearLayout> 

通常,您必须使用包含两个或更多要显示的布局的ViewFlipper,例如,单击一个按钮以及您想在整个屏幕中看到的内容,在ViewPager标记之外写入。