2016-11-28 2 views
1

Я создаю пользовательский интерфейс многих кнопок для ввода текста с помощью макета ограничения. Например, следующее изображение.Это ошибка в Android Studio?

enter image description here

Но, я чувствую себя странно, что андроид студия стала очень медленно, как я кладу больше UIs и адаптивный крючок позволяет мне установить, иногда исчезают (ex.some кнопки позволяют disapper головы строку выше изображения) .Он должен используйте очень большую память, и я предполагаю, что свободная память вычисляет позицию и повторно отображает пользовательский интерфейс. Могу ли я избежать этой ситуации? или Альтернативный способ сделать один и тот же интерфейс с использованием другого макета. Я очень нервничаю из-за этой проблемы, потому что я не могу понять, как лучше сделать сетку с гибким масштабированием UI.Any советы помогут мне.

+0

Редактор Visual Studio ConstraintLayout для Android Studio по-прежнему остается бета-версией и склонен к тому, чтобы быть медленным (особенно на больших макетах), я не думаю, что вы можете с ним справиться, вы должны посмотреть на GridLayout или подобное. ConstraintLayout (на Android) рекомендуется только для определенных макетов, поскольку это может быть _slower_, чем простой RelativeLayout. Преимущество CLayout заключается в том, что у вас есть глубокие иерархии, которые вы можете сгладить, используя это. В противном случае это может быть медленнее, потому что это должно было рассчитать много вещей. –

+0

@ Martín Marconcini Спасибо за ответ. В результате вы правы. Это будет медленнее, если подключить более относительное позиционирование. Таким образом, он будет работать хорошо, меньше родительского компонента, используя закрытие элементов представления каким-либо другим макетом. Благодарю. – tkowt

ответ

0

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

<?xml version="1.0" encoding="utf-8"?> 
<android.support.constraint.ConstraintLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 

<EditText 
     android:layout_width="456dp" 
     android:layout_height="64dp" 
     android:inputType="textPersonName" 
     android:text="Name" 
     android:ems="10" 
     android:id="@+id/editText" 
     android:layout_marginTop="16dp" 
     app:layout_constraintTop_toTopOf="parent" 
     android:layout_marginStart="16dp" 
     app:layout_constraintLeft_toLeftOf="parent" 
     android:layout_marginEnd="16dp" 
     app:layout_constraintRight_toRightOf="parent" /> 

    <GridLayout 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:columnCount="8" 
     android:rowCount="5" 
     android:useDefaultMargins="true" 
     app:layout_constraintBottom_toBottomOf="parent" 
     android:layout_marginBottom="32dp" 
     android:foregroundGravity="center_horizontal" 
     android:layout_marginStart="16dp" 
     app:layout_constraintLeft_toLeftOf="parent" 
     android:layout_marginEnd="16dp" 
     app:layout_constraintRight_toRightOf="parent" 
     android:layout_marginTop="8dp" 
     app:layout_constraintTop_toBottomOf="@+id/editText" 
     app:layout_constraintVertical_bias="0.81"> 

     <Button 
      android:text="button" 
      android:layout_width="88dp" 
      android:background="@drawable/oval_btn" 
      android:id="@+id/str_wa" 
      android:layout_height="88dp" 
      tools:layout_editor_absoluteY="520dp" 
      tools:layout_editor_absoluteX="529dp" /> ・・・・・・ 

И вы можете разместить то, что вам нравится.

Смежные вопросы