【问题标题】:XML linear layout verticalXML 线性布局垂直
【发布时间】:2013-04-09 13:29:15
【问题描述】:

您在下面看到我的 xml: 我有一个 层次结构

我唯一想要的是所有图像+文本都垂直放置在彼此下方+水平集中在屏幕上.. 我尝试了太多 xml 来达到这个结果,但没有任何效果..

第一个问题是 relativelayout 中的 textswitcher 将自己放置在 relativelayout 中的 imageswitcher 旁边。..

第二个问题是之后的imageswitcher + textswitcher不会出现在屏幕上... :(

(我需要在linearlayout中使用这个relativelayout,因为我为relativelayout设置了动画并且无法删除它)

谢谢你的帮助!!

 <?xml version="1.0" encoding="utf-8"?>
 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/layoutid"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
android:gravity="center_horizontal"
android:background="@drawable/background_donker" >

  <ImageView
    android:id="@+id/wolkanim"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:adjustViewBounds="true"
    android:src="@anim/wolkanimation" />



    <RelativeLayout
    android:id="@+id/layoutid2"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
     android:gravity="center_horizontal"
    >

    <ImageSwitcher
        android:id="@+id/imageswitchertrein"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:inAnimation="@anim/fade_in"
        android:outAnimation="@anim/fade_out"
        />

        <TextSwitcher
        android:id="@+id/textswitcherafstandtekst"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
      android:layout_centerInParent="true"
        android:inAnimation="@anim/fadenieuw"
        android:outAnimation="@anim/fadenieuwout"
        android:textSize="40sp" />

     </RelativeLayout>


   <ImageSwitcher
     android:id="@+id/imageswitcherspoor"
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
     android:inAnimation="@anim/fade_in"
     android:outAnimation="@anim/fade_out"
     android:src="@drawable/spoor" >
    </ImageSwitcher>

     <TextSwitcher
    android:id="@+id/textswitcherstationnaam"
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
    android:inAnimation="@anim/fadenieuw"
    android:outAnimation="@anim/fadenieuwout" 
       />


    </LinearLayout>

【问题讨论】:

    标签: android xml android-linearlayout android-relativelayout


    【解决方案1】:

    您的第一个问题是RelativeLayout 正在填充LinearLayout,因此您的 RL 中的所有内容都在您的 LL 内容之上。此外,与将下一个子项向下或向右推的 LinearLayout 不同,RelativeLayout 子项需要定义定位,例如 android:layout_below="@+id/..." 或设置边距。

    当我在布局中填充每个元素的内容时,以下代码会起作用。

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/layoutid"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="@drawable/background_donker"
        android:gravity="center_horizontal"
        android:orientation="vertical" >
    
        <ImageView
            android:id="@+id/wolkanim"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:adjustViewBounds="true"
            android:src="@anim/wolkanimation" />
    
        <RelativeLayout
            android:id="@+id/layoutid2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:gravity="center_horizontal" >
    
    
            <ImageSwitcher
                android:id="@+id/imageswitchertrein"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:inAnimation="@anim/fade_in"
                android:outAnimation="@anim/fade_out" />
    
            <TextSwitcher
                android:id="@+id/textswitcherafstandtekst"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_below="@+id/imageswitchertrein"
                android:layout_centerInParent="true"
                android:inAnimation="@anim/fadenieuw"
                android:outAnimation="@anim/fadenieuwout"
                android:textSize="40sp" />
        </RelativeLayout>
    
        <ImageSwitcher
            android:id="@+id/imageswitcherspoor"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:inAnimation="@anim/fade_in"
            android:outAnimation="@anim/fade_out"
            android:src="@drawable/spoor" >
        </ImageSwitcher>
    
        <TextSwitcher
            android:id="@+id/textswitcherstationnaam"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:inAnimation="@anim/fadenieuw"
            android:outAnimation="@anim/fadenieuwout" />
    
    </LinearLayout>
    

    【讨论】: