Несколько RelativeLayout внутри ошибки отображения LinearLayout - PullRequest
0 голосов
/ 09 марта 2019

У меня есть приложение MoodTracker, которое сохраняет ежедневное настроение в префах каждые 24 часа и отображает историю за последние 7 дней.
Моя проблема заключается в следующем:
В макете «Моя история» 7 относительных раскладок (по одному на каждыйдень) внутри LinearLayout.
Превью отлично, одна сторона вверх, другая.Но когда я запускаю приложение, я вижу только 4/7 макетов, каждый из которых больше ожидаемого ... это мой код:
XML: https://github.com/matteovaccari/MoodTracker/blob/master/app/src/main/res/layout/activity_mood_history.xml
java: https://github.com/matteovaccari/MoodTracker/blob/master/app/src/main/java/com/matt/android/moodtracker_v2/controllers/MoodHistoryActivity.java
Заранее спасибо

Ответы [ 3 ]

0 голосов
/ 09 марта 2019

В каждом RelativeLayout для следующих полей:

  1. измените 'android: layout_height' в каждом на 0
  2. Добавьте атрибут 'layout_weight' и установите его значение как 1
0 голосов
/ 09 марта 2019

Не используйте android:layout_weight или фиксированный размер в ваших представлениях - это может работать для небольших макетов, подобных этой, но в больших макетах, это может повлиять на производительность экрана. При использовании фиксированного размера в представлении оно не реагирует на все Размеры экрана.

лучше использовать constraintlayout , чтобы получить красивый экран, который реагирует на все устройства:

<androidx.constraintlayout.widget.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:id="@+id/frameLayout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".Fragments.MenusDesign.BookMenu.BookMenu">


<TextView
    android:id="@+id/activity_historic_text_seven"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentStart="true"

    android:textStyle="bold"
    app:layout_constraintBottom_toBottomOf="@+id/activity_historic_btn_five"
    app:layout_constraintEnd_toEndOf="@+id/activity_historic_text_six"
    app:layout_constraintStart_toStartOf="@+id/activity_historic_text_six"
    app:layout_constraintTop_toTopOf="@+id/activity_historic_btn_five"
    tools:text="string/day_7" />

<Button
    android:id="@+id/activity_historic_btn_seven"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginTop="8dp"
    android:layout_marginBottom="8dp"
    android:text="6"
    app:layout_constraintBottom_toTopOf="@+id/guideline11"
    app:layout_constraintEnd_toEndOf="@+id/activity_historic_btn_four"
    app:layout_constraintStart_toStartOf="@+id/activity_historic_btn_four"
    app:layout_constraintTop_toTopOf="@+id/guideline10" />


<TextView
    android:id="@+id/activity_historic_text_six"
    android:layout_width="wrap_content"
    android:layout_height="20dp"
    android:layout_alignParentStart="true"
    android:textStyle="bold"
    app:layout_constraintBottom_toBottomOf="@+id/activity_historic_btn_seven"
    app:layout_constraintEnd_toEndOf="@+id/activity_historic_text_five"
    app:layout_constraintStart_toStartOf="@+id/activity_historic_text_five"
    app:layout_constraintTop_toTopOf="@+id/activity_historic_btn_seven"
    tools:text="string/day_6" />

<Button
    android:id="@+id/activity_historic_btn_six"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginTop="8dp"
    android:layout_marginBottom="8dp"
    android:text="4"
    app:layout_constraintBottom_toTopOf="@+id/guideline9"
    app:layout_constraintEnd_toEndOf="@+id/activity_historic_btn_three"
    app:layout_constraintStart_toStartOf="@+id/activity_historic_btn_three"
    app:layout_constraintTop_toTopOf="@+id/guideline8" />


<TextView
    android:id="@+id/activity_historic_text_five"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentStart="true"
    android:textStyle="bold"
    app:layout_constraintBottom_toBottomOf="@+id/activity_historic_btn_four"
    app:layout_constraintEnd_toEndOf="@+id/activity_historic_text_four"
    app:layout_constraintStart_toStartOf="@+id/activity_historic_text_four"
    app:layout_constraintTop_toTopOf="@+id/activity_historic_btn_four"
    tools:text="string/day_5" />

<Button
    android:id="@+id/activity_historic_btn_five"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginTop="8dp"
    android:layout_marginBottom="8dp"
    android:text="7"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintEnd_toEndOf="@+id/activity_historic_btn_seven"
    app:layout_constraintStart_toStartOf="@+id/activity_historic_btn_seven"
    app:layout_constraintTop_toTopOf="@+id/guideline11" />


<TextView
    android:id="@+id/activity_historic_text_four"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentStart="true"
    android:textStyle="bold"
    app:layout_constraintBottom_toBottomOf="@+id/activity_historic_btn_six"
    app:layout_constraintEnd_toEndOf="@+id/activity_historic_text_three"
    app:layout_constraintStart_toStartOf="@+id/activity_historic_text_three"
    app:layout_constraintTop_toTopOf="@+id/activity_historic_btn_six"
    tools:text="string/day_4" />

<Button
    android:id="@+id/activity_historic_btn_four"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginTop="8dp"
    android:layout_marginBottom="8dp"
    android:text="5"
    app:layout_constraintBottom_toTopOf="@+id/guideline10"
    app:layout_constraintEnd_toEndOf="@+id/activity_historic_btn_six"
    app:layout_constraintStart_toStartOf="@+id/activity_historic_btn_six"
    app:layout_constraintTop_toTopOf="@+id/guideline9" />" />


<TextView
    android:id="@+id/activity_historic_text_three"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentStart="true"
    android:textStyle="bold"
    app:layout_constraintBottom_toBottomOf="@+id/activity_historic_btn_three"
    app:layout_constraintEnd_toEndOf="@+id/activity_historic_text_two"
    app:layout_constraintStart_toStartOf="@+id/activity_historic_text_two"
    app:layout_constraintTop_toTopOf="@+id/activity_historic_btn_three"
    tools:text="string/day_3" />

<Button
    android:id="@+id/activity_historic_btn_three"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginTop="8dp"
    android:layout_marginBottom="8dp"
    android:text="3"
    app:layout_constraintBottom_toTopOf="@+id/guideline8"
    app:layout_constraintEnd_toEndOf="@+id/button6"
    app:layout_constraintStart_toStartOf="@+id/button6"
    app:layout_constraintTop_toTopOf="@+id/guideline7" />


<TextView
    android:id="@+id/activity_historic_text_two"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentStart="true"
    android:textStyle="bold"
    app:layout_constraintBottom_toBottomOf="@+id/button6"
    app:layout_constraintEnd_toEndOf="@+id/activity_historic_text_one"
    app:layout_constraintStart_toStartOf="@+id/activity_historic_text_one"
    app:layout_constraintTop_toTopOf="@+id/button6"
    tools:text="string/day_2"/>

<Button
    android:id="@+id/button6"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginTop="8dp"
    android:layout_marginBottom="8dp"
    android:text="2"
    app:layout_constraintBottom_toTopOf="@+id/guideline7"
    app:layout_constraintEnd_toEndOf="@+id/button"
    app:layout_constraintStart_toStartOf="@+id/button"
    app:layout_constraintTop_toTopOf="@+id/guideline6" />


<TextView
    android:id="@+id/activity_historic_text_one"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentStart="true"
    android:layout_marginStart="8dp"
    android:layout_marginEnd="8dp"
    android:textStyle="bold"
    app:layout_constraintBottom_toBottomOf="@+id/button"
    app:layout_constraintEnd_toStartOf="@+id/guideline12"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toTopOf="@+id/button"
    tools:text="string/day_1" />

<Button
    android:id="@+id/button"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginStart="8dp"
    android:layout_marginTop="8dp"
    android:layout_marginEnd="8dp"
    android:layout_marginBottom="8dp"
    android:text="1"
    app:layout_constraintBottom_toTopOf="@+id/guideline6"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintStart_toStartOf="@+id/guideline12"
    app:layout_constraintTop_toTopOf="parent" />

<androidx.constraintlayout.widget.Guideline
    android:id="@+id/guideline6"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:orientation="horizontal"
    app:layout_constraintGuide_percent="0.142" />

<androidx.constraintlayout.widget.Guideline
    android:id="@+id/guideline7"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:orientation="horizontal"
    app:layout_constraintGuide_percent="0.28" />

<androidx.constraintlayout.widget.Guideline
    android:id="@+id/guideline8"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:orientation="horizontal"
    app:layout_constraintGuide_percent="0.42" />

<androidx.constraintlayout.widget.Guideline
    android:id="@+id/guideline9"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:orientation="horizontal"
    app:layout_constraintGuide_percent="0.57" />

<androidx.constraintlayout.widget.Guideline
    android:id="@+id/guideline10"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:orientation="horizontal"
    app:layout_constraintGuide_percent="0.714" />

<androidx.constraintlayout.widget.Guideline
    android:id="@+id/guideline11"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:orientation="horizontal"
    app:layout_constraintGuide_percent="0.857" />

<androidx.constraintlayout.widget.Guideline
    android:id="@+id/guideline12"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:orientation="vertical"
    app:layout_constraintGuide_percent="0.5" />

0 голосов
/ 09 марта 2019

Проблема в ваших RelativeLayouts:

android:layout_height="match_parent"
android:layout_weight="1"

Вам следует установить layout_height = "0", если вы используете layout_weight и хотите, чтобы 7 RelativeLayouts занимали равное пространство:

android:layout_height="0"
android:layout_weight="1"
...