Относительная компоновка Не попадает под определение - PullRequest
7 голосов
/ 05 июля 2011

Теперь вот мой 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"

Ответы [ 3 ]

12 голосов
/ 05 июля 2011

Я не знаю, как объяснить, почему это происходит, но это связано с тем, что вы установили @+id/fcplaydown ImageButton по центру в parent, а его родительский объект - RelativeLayout с шириной и высотой wrap_content, макет просто запутался.

Итак, измените настройки RelativeLayout на match_parent, и это будет работать.

<RelativeLayout 
    android:id="@+id/RelativeLayout01" 
    android:layout_height="match_parent" 
    android:layout_width="match_parent"> 
0 голосов
/ 19 сентября 2012

Идентификаторы вида компоновки используются для определения местоположения и размеров. Теперь, когда идентификатор определен, он сохраняется в R.java. Мы все это знаем. Что мы не знаем, так это то, что представления в RelativeLayout построены из более чем одного анализа файла макета. Учитывая, что компиляция является дорогостоящим процессом, и необходимо оптимизировать этот процесс, Android необходимо сбросить идентификатор с помощью знака +, когда вы хотите его использовать, а не только когда вы объявляете его. Хотя это немного запутанно, но именно так оно и должно быть.

0 голосов
/ 05 июля 2011

@ + id следует использовать только при назначении нового идентификатора для элемента. Когда вы ссылаетесь на элемент, используйте @id.

Символ at (@) в начале строки указывает, что анализатор XML должен проанализировать и развернуть оставшуюся часть строки идентификатора и идентифицировать его как ресурс идентификатора. Знак плюс (+) означает, что это новое имя ресурса, которое необходимо создать и добавить в наши ресурсы (в файле R.java).

Ссылка: http://developer.android.com/guide/topics/ui/declaring-layout.html#id

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...