Android: фон в стилях позволяет элементам исчезать

Я изменил android:background в своем стиле:

<style name="Theme.App.Base" parent="Theme.AppCompat.Light.DarkActionBar">
    <item name="colorControlNormal">#747474</item>
    <item name="colorControlActivated">@color/colorAccentTrans</item>
    <item name="colorControlHighlight">@color/colorAccentTrans</item>

    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
    <item name="colorAccent">@color/colorAccent</item>

    <item name="android:background">@color/background</item>

</style>

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

Здесь XML макета фрагмента:

<RelativeLayout 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"
    android:background="@color/background"
    tools:context="io.rocketfox.dreamydiary.JournalView">




<android.support.constraint.ConstraintLayout
    android:id="@+id/layout_nothingInList"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_alignParentLeft="true"
    android:layout_alignParentStart="true"
    android:background="@color/background"
    android:padding="0dp"
    android:visibility="invisible"
    tools:layout_editor_absoluteX="0dp"
    tools:layout_editor_absoluteY="50dp">

    <ImageView
        android:id="@+id/img_NoDreamsHint"
        android:layout_width="167dp"
        android:layout_height="115dp"
        android:layout_marginBottom="8dp"
        android:layout_marginEnd="8dp"
        android:layout_marginLeft="8dp"
        android:layout_marginRight="8dp"
        android:layout_marginStart="8dp"
        android:layout_marginTop="8dp"
        android:adjustViewBounds="false"
        android:cropToPadding="true"
        android:scaleType="fitCenter"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintHorizontal_bias="0.502"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintVertical_bias="0.39999998"
        app:srcCompat="@drawable/sheep" />

    <TextView
        android:id="@+id/txt_NoDreamsHint"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginEnd="8dp"
        android:layout_marginLeft="8dp"
        android:layout_marginRight="8dp"
        android:layout_marginStart="8dp"
        android:text="No dreams yet"
        android:textColor="@color/splashScreenAction"
        android:textSize="24sp"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/img_NoDreamsHint" />

</android.support.constraint.ConstraintLayout>

<RelativeLayout
    android:id="@+id/layout_calendarPicker"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <com.prolificinteractive.materialcalendarview.MaterialCalendarView
        android:id="@+id/calendarView"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        app:mcv_allowClickDaysOutsideCurrentMonth="true"
        app:mcv_arrowColor="@color/cardview_light_background"
        app:mcv_dateTextAppearance="@style/CustomTextAppearanceDates"
        app:mcv_firstDayOfWeek="monday"
        app:mcv_headerTextAppearance="@style/CustomTextAppearanceMonth"
        app:mcv_selectionColor="@color/colorAccentTrans"
        app:mcv_tileSize="40dp"
        app:mcv_tileWidth="50dp"
        app:mcv_weekDayTextAppearance="@style/CustomTextAppearanceWeek"
        tools:layout_editor_absoluteX="8dp"
        tools:layout_editor_absoluteY="81dp" />

    <ListView
        android:id="@+id/listDreams"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_alignParentBottom="true"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:layout_below="@+id/calendarView"
        android:background="@color/background" />

</RelativeLayout>

<RelativeLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:padding="8dp">

    <android.support.design.widget.FloatingActionButton
        android:id="@+id/fab_AddDream"
        style="@style/Widget.Design.FloatingActionButton"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_alignParentEnd="true"
        android:layout_alignParentRight="true"
        android:clickable="true"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:srcCompat="@drawable/add" />
</RelativeLayout>

</RelativeLayout>

Fab Button — единственная видимая вещь.

Скриншот макета после смены фона: https://imgur.com/ElraxNw


person Lukas Kuhn    schedule 14.04.2017    source источник
comment
Если возможно, добавьте снимок экрана, чтобы мы могли помочь.   -  person Wasim K. Memon    schedule 14.04.2017
comment
Добавлен скриншот   -  person Lukas Kuhn    schedule 14.04.2017


Ответы (2)


  1. В вашем стиле вы должны использовать android:windowBackground вместо android:background

windowBackground — это свойства стиля, которые действуют только тогда, когда стиль применяется в качестве темы к атрибуту Activity или application, а android:windowBackground поддерживает только ссылку на другой ресурс.

  1. Отображается только FAB, потому что контейнер FAB — это RelativeLayout, а его width и heightmatch_parent. Вот почему он совпал с вашим layout_calendarPicker.

Обновите XML макета, как показано ниже:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 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"
    android:background="@color/background">

    <android.support.constraint.ConstraintLayout
        android:id="@+id/layout_nothingInList"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:background="@color/background"
        android:padding="0dp"
        android:visibility="invisible"
        tools:layout_editor_absoluteX="0dp"
        tools:layout_editor_absoluteY="50dp">

        <ImageView
            android:id="@+id/img_NoDreamsHint"
            android:layout_width="0dp"
            android:layout_height="0dp"
            android:layout_marginBottom="8dp"
            android:layout_marginEnd="8dp"
            android:layout_marginLeft="8dp"
            android:layout_marginRight="8dp"
            android:layout_marginStart="8dp"
            android:layout_marginTop="8dp"
            android:adjustViewBounds="false"
            android:cropToPadding="true"
            android:scaleType="fitCenter"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintHorizontal_bias="0.502"
            app:layout_constraintLeft_toLeftOf="parent"
            app:layout_constraintRight_toRightOf="parent"
            app:layout_constraintTop_toTopOf="parent"
            app:layout_constraintVertical_bias="0.39999998"
            app:srcCompat="@drawable/sheep" />

        <TextView
            android:id="@+id/txt_NoDreamsHint"
            android:layout_width="0dp"
            android:layout_height="0dp"
            android:layout_marginEnd="8dp"
            android:layout_marginLeft="8dp"
            android:layout_marginRight="8dp"
            android:layout_marginStart="8dp"
            android:text="No dreams yet"
            android:textColor="@color/splashScreenAction"
            android:textSize="24sp"
            app:layout_constraintLeft_toLeftOf="parent"
            app:layout_constraintRight_toRightOf="parent"
            app:layout_constraintTop_toBottomOf="@+id/img_NoDreamsHint" />

    </android.support.constraint.ConstraintLayout>

    <RelativeLayout
        android:id="@+id/layout_calendarPicker"
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <com.prolificinteractive.materialcalendarview.MaterialCalendarView
            android:id="@+id/calendarView"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            app:mcv_allowClickDaysOutsideCurrentMonth="true"
            app:mcv_arrowColor="@color/cardview_light_background"
            app:mcv_dateTextAppearance="@style/CustomTextAppearanceDates"
            app:mcv_firstDayOfWeek="monday"
            app:mcv_headerTextAppearance="@style/CustomTextAppearanceMonth"
            app:mcv_selectionColor="@color/colorAccentTrans"
            app:mcv_tileSize="40dp"
            app:mcv_tileWidth="50dp"
            app:mcv_weekDayTextAppearance="@style/CustomTextAppearanceWeek"
            tools:layout_editor_absoluteX="8dp"
            tools:layout_editor_absoluteY="81dp" />

        <ListView
            android:id="@+id/listDreams"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_alignParentBottom="true"
            android:layout_alignParentLeft="true"
            android:layout_alignParentStart="true"
            android:layout_below="@+id/calendarView"
            android:background="@color/background" />

        <android.support.design.widget.FloatingActionButton
            android:id="@+id/fab_AddDream"
            style="@style/Widget.Design.FloatingActionButton"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginRight="16dp"
            android:layout_marginBottom="16dp"
            android:layout_alignParentBottom="true"
            android:layout_alignParentEnd="true"
            android:layout_alignParentRight="true"
            android:clickable="true"
            android:src="@drawable/add" />

    </RelativeLayout>
</RelativeLayout>

Надеюсь, это поможет~

person Ferdous Ahamed    schedule 14.04.2017

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

    <item name="android:background">color here</item>

Вместо этого мне пришлось редактировать

    <item name="android:windowBackground">color here</item>

Это решило проблему.

person Lukas Kuhn    schedule 14.04.2017