Большое пространство под панелью инструментов - PullRequest
0 голосов
/ 04 сентября 2018

Я пытаюсь использовать свои собственные панели инструментов в двух действиях, которые имеют ConstraintLayout. В одном упражнении я поместил кнопку под панелью инструментов, что выглядит хорошо: image showing the good activity

Однако в другом упражнении я поместил ListView ниже панели инструментов, и внезапно между панелью инструментов и ListView возник большой разрыв: image showing the bad activity

Следует отметить, что это не отображается в предварительном просмотре в AndroidStudio. Компоновка Activity точно такая же, и в Manifest я установил тему приложения на NoActionBar.

Я рад любой помощи:)

Вот часть кода «плохой» деятельности:

<?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"
tools:context="com.example.nutritionanalyzer.RecipeOverviewActivity">

<android.support.v7.widget.Toolbar
    android:id="@+id/recipe_overview_toolbar"
    android:layout_width="match_parent"
    android:layout_height="?attr/actionBarSize"
    android:background="?attr/colorPrimary"
    android:elevation="4dp"
    android:theme="@style/ThemeOverlay.AppCompat.ActionBar"
    android:visibility="visible"
    app:popupTheme="@style/ThemeOverlay.AppCompat.Dark" />

<ListView
    android:id="@+id/recipeOverviewListView"
    android:layout_width="368dp"
    android:layout_height="495dp"
    android:layout_marginBottom="8dp"
    android:layout_marginEnd="8dp"
    android:layout_marginStart="8dp"
    android:layout_marginTop="8dp"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintHorizontal_bias="1.0"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toBottomOf="@+id/recipe_overview_toolbar" />

</android.support.constraint.ConstraintLayout>

Может быть, линия

android:theme="@style/ThemeOverlay.AppCompat.ActionBar"

виноват? Но у меня точно такая же строчка при "хорошем" занятии ...

1 Ответ

0 голосов
/ 04 сентября 2018

просто установите android:layout_height="0dp" в ListView, потому что когда вы устанавливаете ширину и высоту дочернего элемента в макете ограничения на что-то отличное от нуля и привязывает ребра дочернего элемента, представление будет центрироваться между точками привязки, потому что вы установили эти атрибуты (вы иметь верхний и нижний края привязки):

app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintTop_toBottomOf="@+id/recipe_overview_toolbar" />

Я полагаю, что вы также хотите, чтобы listView соответствовал родительской ширине, если вы хотите, чтобы это было просто установлено android:layout_width="0dp", потому что у вас есть эти атрибуты в listView (у вас есть привязка listView по горизонтали к родительскому):

app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"

и удалить:

app:layout_constraintHorizontal_bias="1.0"
...