现在这是我的布局
的XML代码<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<RelativeLayout
android:id="@+id/RelativeLayout01"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<ImageView
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@drawable/default1"
android:id="@+id/default1"
android:layout_gravity="center"
android:scaleType="fitXY">
</ImageView>
<ImageView
android:layout_marginTop="19dp"
android:layout_width="180dp"
android:layout_height="45dp"
android:src="@drawable/fc_postyour_best_score_bg"
android:id="@+id/postscore"
android:layout_alignParentRight="true"
android:scaleType="fitXY">
</ImageView>
<ImageButton
android:layout_marginTop="22dp"
android:layout_width="35dp"
android:layout_height="35dp"
android:background="@drawable/fctwitterup"
android:layout_marginLeft="7dp"
android:id="@+id/twitter"
android:layout_alignRight="@id/postscore"
android:scaleType="fitXY">
</ImageButton>
<ImageButton
android:layout_marginTop="22dp"
android:layout_width="35dp"
android:layout_height="35dp"
android:background="@drawable/fcfacebookdown"
android:id="@+id/fb"
android:layout_toLeftOf="@id/twitter">
</ImageButton>
<ImageButton
android:layout_width="160dp"
android:layout_height="40dp"
android:background="@drawable/fsremove_ads_down"
android:id="@+id/fsremove_ads_down"
android:layout_below="@id/postscore"
android:layout_alignParentRight="true"
android:layout_marginBottom="3dp">
</ImageButton>
<ToggleButton
android:id="@+id/fsvibrate_on"
android:layout_width="135dip"
android:layout_height="35dip"
android:textOff=""
android:textOn=""
android:layout_below="@+id/fsremove_ads_down"
android:layout_alignParentRight="true"
android:background="@drawable/fsvibrate_on">
</ToggleButton>
<ImageButton
android:layout_width="210dp"
android:layout_height="60dp"
android:background="@drawable/fcplaydown"
android:id="@+id/fcplaydown"
android:layout_centerInParent="true">
</ImageButton>
<ToggleButton
android:id="@+id/fcsoundondown"
android:layout_width="35dp"
android:layout_height="35dp"
android:textOff=""
android:textOn=""
android:layout_below="@+id/fcplaydown"
android:background="@drawable/fcsoundondown">
</ToggleButton>
</RelativeLayout>
</LinearLayout>
所以我的问题是@+id/fcsoundondown
我将切换按钮设置为@+id/fcplaydown
以下,但它不会低于指定的按钮,而是在"@+id/postscore"
之后
答案 0 :(得分:12)
我不知道为什么会发生这种情况很好解释,但这与您将@+id/fcplaydown ImageButton
设置为父级中心,而他的父级是具有wrap_content宽度和高度的RelativeLayout有关,布局只会混淆。
因此,请将RelativeLayout
设置更改为match_parent
,然后才能生效。
<RelativeLayout
android:id="@+id/RelativeLayout01"
android:layout_height="match_parent"
android:layout_width="match_parent">
答案 1 :(得分:0)
布局视图ID用于关联位置和大小。现在,当id被定义时,它将存储在R.java中。我们都知道。好吧,我们不知道的是,RelativeLayout中的视图是由布局文件的多个解析构建的。考虑到编译是一个昂贵的过程,并且需要对此过程进行优化,当需要使用时,Android需要使用+符号重置id,而不仅仅是在声明它时。即使它有点令人困惑,这就是它的使用方式。
答案 2 :(得分:-1)
@ + id 。当您引用元素时,请使用 @id 。
字符串开头的at符号(@)表示XML解析器应解析并扩展ID字符串的其余部分,并将其标识为ID资源。加号(+)表示这是一个新的资源名称,必须创建并添加到我们的资源中(在R.java文件中)。
参考:http://developer.android.com/guide/topics/ui/declaring-layout.html#id