Не выводить кнопку на передний план при нажатии

Мое приложение в настоящее время выглядит следующим образом. Три Button в RelativeLayout, средняя кнопка имеет отрицательные поля слева и справа, чтобы перекрывать две другие кнопки.

Проблема: когда я нажимаю левую или правую кнопку, она на секунду выходит на передний план и перекрывает среднюю кнопку, что выглядит очень некрасиво.

введите здесь описание изображения

введите здесь описание изображения

    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="center_horizontal">

        <Button
            android:id="@+id/voices"
            android:layout_width="160dp"
            android:layout_height="wrap_content"

            android:layout_gravity="center_vertical"

            android:layout_alignParentLeft="true"
            android:layout_alignParentTop="true"
            android:onClick="clickVoices"
            android:background="#333"
            android:textColor="#fff"
            android:text="@string/main_voices" />

        <Button
            android:id="@+id/chat"
            android:layout_width="160dp"
            android:layout_height="wrap_content"
            android:layout_gravity="center_vertical"
            android:layout_alignParentRight="true"
            android:layout_alignParentTop="true"

            android:onClick="clickChat"
            android:background="#333"
            android:textColor="#fff"
            android:text="@string/main_chat" />

        <Button
            android:id="@+id/record"
            android:layout_width="60dp"
            android:layout_height="100dp"

            android:clickable="true"
            android:onClick="clickRecord"
            android:scaleType="centerInside"
            android:src="@drawable/record"
            android:text="Record"
            android:layout_toRightOf="@+id/voices"
            android:layout_toLeftOf="@+id/chat"
            android:layout_marginLeft="-20dp"
            android:layout_marginRight="-20dp"
            android:layout_marginTop="-30dp"
            android:background="@drawable/round_button"

            android:paddingTop="30dp"
            android:layout_marginBottom="10dp" />
    </RelativeLayout>

person poitroae    schedule 05.04.2016    source источник
comment
Только вчера ответил. Возможен дуп? stackoverflow.com/questions/36392715/. Несмотря на это, ответ, который я опубликовал, работает.   -  person CaptJak    schedule 05.04.2016
comment
Хммм. Ваш вопрос лучше, чем тот, на который я ссылался выше, и согласно это сообщение, другое должно быть помечено как обман. Но я не знаю, что делать с моим ответом. Отправился в Meta за советом.   -  person CaptJak    schedule 05.04.2016
comment
Как насчет того, чтобы переместить recordButton из RelativeLayout... или поместить две другие кнопки в LinearLayout, тогда recordButton может плавать вверху естественным образом.   -  person sakiM    schedule 06.04.2016


Ответы (2)



Используйте FrameLayout. Все предметы, которые вы кладете туда, складываются друг на друга.

Или попробуйте:

Поместите представление изображения выше (сверху - первый дочерний элемент родителя) макета в файле xml, чтобы изображение было позади макета.

Неважно, что вы используете кнопку, она должна быть такой же. Надеюсь, поможет.

Я получил эту информацию по этой ссылке

ИЗМЕНИТЬ:

Вот как это выглядит, когда я беру ваш код и конвертирую его в макет фрейма, возможно, я что-то упускаю, потому что не могу запустить его на эмуляторе банкомата.

Пример макета кадра

person Robbert    schedule 05.04.2016
comment
Эй, я тоже так думал, но я понятия не имею, как на самом деле реализовать это с помощью FrameLayout таким образом, чтобы он по-прежнему выглядел точно так же, как указано выше. - person poitroae; 05.04.2016
comment
@poitroae Быстро сделал тот же макет, и я МОГУ заставить его выглядеть так, но у меня нет всех необходимых файлов res, вы можете попробовать удалить этот макет и создать новый? -- Я редактирую свой авонсер, чтобы показать вам свое мнение -- - person Robbert; 05.04.2016
comment
@poitroae кстати, вы пытались переместить код с кнопки записи над другими кнопками? Я где-то читал, что это тоже иногда помогает. Я новичок в Android, поэтому у меня нет больших знаний об этом :) - person Robbert; 05.04.2016