2016-10-11 3 views
0

XML LinkРазметка Android XML перепуталась?

Я разрабатываю приложение с несколькими кнопками, но оно работает неправильно.

Это, как он показывает в студии Android How it shows in the Android studio

Это, как он показывает в эмуляторе enter image description here

+1

ли вы скрыть ProgressBar с видимостью = нет? Попробуйте использовать visibility = invisible –

ответ

0

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

Проверьте папку макета и обеспечить там не несколько файлов lauout в нескольких папках;)

0

Посмотрите на ваше определение XML:

<Button 
     android:text="Back" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:id="@+id/button5" 
     android:layout_toLeftOf="@+id/button2" 
     android:layout_toStartOf="@+id/progressBar2" 
     android:layout_marginRight="11dp" 
     android:layout_marginEnd="11dp" 
     android:layout_alignBottom="@+id/button2" /> 

    <Button 
     android:text="Sign up" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_marginTop="32dp" 
     android:id="@+id/button2" 
     android:layout_below="@+id/editText2" 
     android:layout_toRightOf="@+id/button5" 
     android:layout_toEndOf="@+id/progressBar2" 
     android:layout_marginLeft="14dp" 
     android:layout_marginStart="14dp" /> 

Вы основывая положение «Войти -Д»кнопка на„кнопку Назад“, заявив следующее:

android:layout_toRightOf="@+id/button5" 

Я собираюсь сделать предположение, что если вы скрываете button5 с помощью View.GONE, который, в свою очередь, практически не удаляет button5.

С button5 Отсутствует на вашем макете, button2 больше не будет иметь базы, на которую можно положиться. Таким образом, он перемещается полностью влево.

Решение довольно простое: Используйте View.INVISIBLE и не View.GONE скрыть мнения, в настоящее время зависели с другой:

  • Если вы скрываете это с помощью XML:

    android:visibility="invisible" 
    
  • Если вы скрываете его программно через Java:

    button5.setVisibility(View.INVISIBLE); 
    
0

У вас есть circular dependancy в вашем XML-макете.

Вы не можете/не должны делать:

<Button 
     android:id="@+id/button5" 
     android:layout_toLeftOf="@+id/button2" /> 
<Button 
     android:id="@+id/button2" 
     android:layout_toRightOf="@+id/button5" /> 

Установите положение одного из них на основе родителя только (например, alignParentLeft="true"), а затем вы можете установить позицию другой стороны, основываясь на первая кнопка. Circular dependancies имеют неожиданные результаты, которые могут отображать разные результаты в Studio и в Android или в разных версиях Android.

0

Я не уверен, почему дисплей корректен в студии Android, но, взглянув на ваш xml, вы можете видеть, что ссылка для back button и sign up button испорчена.Помните, что относительное расположение использует понятие наличия view A, который можно использовать в качестве эталона для определения положения view B в вашем XML у вас есть:

<Button 
    android:text="Back" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:id="@+id/button5" 
    android:layout_toLeftOf="@+id/button2" 
    android:layout_toStartOf="@+id/progressBar2" 
    android:layout_marginRight="11dp" 
    android:layout_marginEnd="11dp" 
    android:layout_alignBottom="@+id/button2" /> 

<Button 
    android:text="Sign up" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_marginTop="32dp" 
    android:id="@+id/button2" 
    android:layout_below="@+id/editText2" 
    android:layout_toRightOf="@+id/button5" 
    android:layout_toEndOf="@+id/progressBar2" 
    android:layout_marginLeft="14dp" 
    android:layout_marginStart="14dp" /> 

button5 ссылки button2 и наоборот, одна из проблем здесь является вы даже не знаю, где button2 есть, но вы использовали его как ссылку. Кроме того, button5 зависит от позиции button2, но вы использовали button5 в качестве ссылки для button2.

Я предлагаю использовать editText2 в качестве справочника для обеих ваших кнопок, так как editText2 установил свою позицию. Используйте android:layout_below="@+id/editText2", а затем просто добавьте верхний край в зависимости от того, что вы хотите. после этого, используйте

android:layout_alignParentLeft="true" 
android:layout_alignParentStart="true" 

для кнопки возврата, используйте

android:layout_alignParentRight="true" 
android:layout_alignParentEnd="true" 

кнопки для регистрации. Затем вы можете просто настроить границу для обеих кнопок.

0

У вас есть круговая зависимость в вашем XML-макете.

вы можете увидеть

Try This

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:tools="http://schemas.android.com/tools" 
android:id="@+id/activity_main" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:paddingBottom="@dimen/activity_vertical_margin" 
android:paddingLeft="@dimen/activity_horizontal_margin" 
android:paddingRight="@dimen/activity_horizontal_margin" 
android:paddingTop="@dimen/activity_vertical_margin"> 

<EditText 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:inputType="textEmailAddress" 
    android:ems="10" 
    android:layout_marginTop="39dp" 
    android:id="@+id/editText" 
    android:hint="email" 
    android:textAlignment="center" 
    android:layout_alignParentTop="true" 
    android:layout_centerHorizontal="true" /> 

<EditText 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:inputType="textPassword" 
    android:ems="10" 
    android:layout_marginTop="47dp" 
    android:id="@+id/editText2" 
    android:hint="pass" 
    android:textAlignment="center" 
    android:layout_below="@+id/editText" 
    android:layout_alignLeft="@+id/editText" 
    android:layout_alignStart="@+id/editText" /> 

<Button 
    android:text="Back" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:id="@+id/button5" 
    android:layout_toStartOf="@+id/progressBar2" 
    android:layout_marginRight="11dp" 
    android:layout_marginEnd="11dp" 
    android:layout_alignBottom="@+id/button2" 
    android:layout_toLeftOf="@+id/progressBar2" /> 

<Button 
    android:text="Sign up" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_marginTop="32dp" 
    android:id="@+id/button2" 
    android:layout_below="@+id/editText2" 
    android:layout_toEndOf="@+id/progressBar2" 
    android:layout_marginLeft="14dp" 
    android:layout_marginStart="14dp" 
    android:layout_toRightOf="@+id/progressBar2" /> 

<ProgressBar 
    style="?android:attr/progressBarStyle" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_marginTop="85dp" 
    android:id="@+id/progressBar2" 
    android:layout_below="@+id/button5" 
    android:layout_centerHorizontal="true" /> 
</RelativeLayout>