Member 14882547 Ответов: 2

Android studio показывает только одну кнопку! !


Я только начал изучать Android Studio.
Я пытался сделать несколько кнопок, и приложение показывает только первую кнопку.
Я не вижу никаких ошибок в своем коде...ПОМОГИТЕ МНЕ!!!

Что я уже пробовал:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal">

    <Button
        android:id="@+id/button3"
        style="?android:attr/borderlessButtonStyle"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="@string/strBtn3" />
    <Button
        android:id="@+id/button2"
        style="?android:attr/borderlessButtonStyle"
        android:layout_width="132dp"
        android:layout_height="wrap_content"
        android:text="@string/strBtn2" />

    <Button
        android:id="@+id/button1"
        style="?android:attr/borderlessButtonStyle"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="@string/strBtn1" />
    <Button
        android:id="@+id/button4"
        style="?android:attr/borderlessButtonStyle"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="@string/strBtn4" />

David Crow

Кнопки лежат друг на друге, потому что их ширина такая же, как и у их родителя.

Member 14882547

О, вот в чем была проблема. Спасибо!

2 Ответов

Рейтинг:
18

Andre Oosthuizen

Любые XML-атрибуты с префиксом tools удаляются при компиляции приложения и отображаются только в Редакторе макетов Android Studio.

Вам нужно правильно установить ограничения в вашем ConstraintLayout, а не использовать абсолютное позиционирование.

Или вы можете вместо этого использовать RelativeLayout, LinearLayout и т. д.

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

Решение 1 - Щелкните правой кнопкой мыши на вашем макете и выберите опцию "конвертировать вид". затем выберите опцию "LinearLayout". он покажет все три кнопки на выходе.

В противном случае читайте об ограничениях ЗДЕСЬ, как только вы используете рекомендации, ваши кнопки будут отображаться правильно.

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


David Crow

Один ConstraintLayout не используется.

Member 14882547

Если вы боретесь с той же проблемой, что и я, попробуйте LinearLayout в "вертикальном режиме", он работает!

David Crow

Я ни с чем не борюсь.

Member 14882547

Но я уже использую линейную компоновку.Во всяком случае, я попробовал линейную компоновку в вертикальном режиме, и это сработало! Спасибо

Andre Oosthuizen

@David, с информацией, учитывая, что это было ближе всего, что я мог получить, чтобы помочь, я действительно пропустил ширину, хотя, Спасибо, что указали.

@OP, это было очень приятно.

Рейтинг:
0

Member 14883729

Братан, ты не можешь видеть кнопки ура, потому что ты дал "горизонталь" Уру

android:orientation="Horizontal"

U просто скопируйте этот код и вставьте его в XML-файл ur

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <Button
        android:id="@+id/button3"
        style="?android:attr/borderlessButtonStyle"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="strBtn3" />

    <Button
        android:id="@+id/button2"
        style="?android:attr/borderlessButtonStyle"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="strBtn2" />

    <Button
        android:id="@+id/button1"
        style="?android:attr/borderlessButtonStyle"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="strBtn1" />
    <Button
        android:id="@+id/button4"
        style="?android:attr/borderlessButtonStyle"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="strBtn4" />
</LinearLayout>